본문 바로가기

JAVA

String, StringBuffer, StringBuilder

https://novemberde.github.io/2017/04/15/String_0.html

http://ooz.co.kr/298


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