String
String은 불변객체이다. 한번 생성된 String은 내용을 바꿀 수 없다.
- String은 불변 객체이기 때문에 String객체와 String객체를 더하면 (+연산) 새로운 문자열이 생성된다.
- 이 과정에서 새로운 메모리를 할당하고 해제가 발생하여 연산이 많아질수록 성능적으로 좋지 않다.
- 이를 해결하기 위해 StringBuilder를 사용한다.
StringBuilder
- 문자열 끼리 더할 때 새로운 객체를 생성하는 것이 아니라 기존의 데이터에 더하는 방식을 사용한다.
주요 메서드
- append() : 문자열 추가
- length() : 길이 확인
- insert(int index, String str) : index자리에 str을 추가
StringBuffer
동기화를 지원한다.
- StringBuffer는 Synchronized 키워드를 사용한다.
- 멀티스레드 환경에서 문자열의 수정이 빈번하게 발생하는 경우 사용된다.
![](https://velog.velcdn.com/images/trasalby/post/97c4556b-e521-4abb-a2ed-653de57c5845/image.png)