https://novemberde.github.io/2017/04/15/String_0.html
String 객체는 한 번 생성되면 할당된 메모리 공간이 변하지 않습니다. + 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열이 붙는 것이 아니라, 새로운 String 객체를 만든 후, 새 String 객체에 연결된 문자열을 저장하고, 그 객체를 참조하도록 합니다.
StringBuilder는 변경가능한 문자열이지만 synchronization이 적용되지 않는다. 하지만 StringBuffer는 thread-safe라는 말에서처럼 변경가능하지만 multiple thread환경에서 안전한 클래스라고 한다. 이것이 StringBuilder와 StringBuffer의 가장 큰 차이점이다.
멀티스레드에서는 동기화를 보장하는 StringBuffer가 낫고
싱글스레드에서는 StringBuilder가 낫다
'JAVA' 카테고리의 다른 글
LinkedList, ArrayList 차이 (0) | 2018.10.12 |
---|---|
Annotation (0) | 2018.07.05 |
JUnit (0) | 2018.07.05 |
객체지향의 5가지 개념 (0) | 2018.07.04 |
자바의 자료구조 (0) | 2018.07.04 |