String은 불변 객체라고 한다. str1 , str2 2개의 String객체가 있을 때, 만약 str1 + str2와 같은 연산을 하게 되면 새로운 String을 생성한다.
즉 String객체와 String객체를 더하는 행위는 메모리 할당과 메모리 해제를 발생시키며 더하는 연산이 많아진다면 성능적으로 좋지 않다.
그래서 StringBuilder를 사용한다.
StringBuilder는 String과 String을 더할 때 새로운 객체를 생성하는 것이 아니라 기존의 데이터에 더하는 방식을 사용하기 때문에 속도도 빠르며 상대적으로 부하가 적다.
따라서 긴 문자열을 더하는 상황이 발생할 경우 StringBuilder를 사용해주면 좋다.
StringBuilder sb = new StringBuilder();
sb.append("ABC");
sb.append("DEF");
System.out.println(sb.toString());
StringBuilder에는 append()가 있는데 이는 문자열을 더하는 역할을 한다. 만들어진 문자열을 출력하기 위해서는 StringBuilder의 인스턴스인 sb의 toString()을 이용한다.
StringBuffer는 공통 메소드 동기화로 인해 멀티 스레드 환경에서만 사용한다. 그 외에는 StringBuilder를 사용하면 된다
https://wakestand.tistory.com/245
https://hardlearner.tistory.com/288