프로그래밍/JAVA
String, StringBuffer, StringBuilder
kkwonsy
2019. 3. 19. 16:09
1.
String은 Immutable이다.
vs
StringBuffer/StringBuilder는 mutable이다.
2.
String으로 +연산, concat을 이용하면 새로운 String 객체가 만들어지는 것이다.(JDK 1.5부터 +연산이 내부적으로 StringBuilder에 의해 이뤄지긴 함.)
참조되지 않는 String은 GC 대상이 된다.
문자열 연산이 많은 경우 오버헤드가 발생할 수 있다.
vs
StringBuffer와 StringBuilder는 문자열 연산이 자주 있을 때 사용한다.
3.
StringBuffer는 멀티 스레드 환경에서 syncronized 키워드가 가능해 동기화가 된다. 즉, thread-safe하다
vs
StringBuilder는 동기화를 지원하지 않지만 연산이 빠르다.
vs
String은 immutable이므로 thread-safe 하다.