String
- 불변의 속성을 가진다.
- String끼리 덧셈 연산을 하면 garbage collector가 남은 String을 처리한다.
- 따라서 변경이 잦은 문자열은 StringBuffer나 StringBuilder을 사용해야 한다.
- Constant Pool에 존재
StringBuffer
- 동기화 키워드를 지원해서 멀티스레드 환경에서 안전하지만 성능은 StringBuilder보다 안좋다.
- 스레드에 안전한 프로그램이 필요할 때나 개발 중인 시스템의 부분이 스레드에 안전한지 모를 경우 사용하는 것이 좋다
StringBuilder
- 동기화를 지원하지 않아서 멀티스레드 환경에는 적합하지 않다. 코테에 적합하다.
- 스레드에 안전한지 여부가 전혀 관계 없는 프로그램을 개발할 때 사용하면 적합하다.