String, StringBuilder, StringBuffer에 대해서 정리

String 특징

new 연산을 통해 생성된 인스턴스의 메모리 공간은 변하지 않는다 (Immutable)

GC로 제거해야 한다.

객체가 불변하므로 멀티쓰레드에서 동기화를 신경 쓸 필요가 없다.(조회연산에 장점)

즉, 문자열 연산이 적고 조회가 많은 멀티쓰레드 환경에서 좋다.

StringBuffer, StringBuilder 공통점

new 연산으로 클래스를 한 번만 만든다.(Mutable)

문자열 연산 시 새로 객체를 만들지 않고 크기를 변경시킨다.

StringBuffer, StringBuilder 차이점

StringBuffer는 Thread-Safe함

StringBuilder는 Thread-safe하지 않음 (불가능)

Thread-safe
멀티 쓰레드 프로그래밍에서, 
어떤 공유 자원에 여러 쓰레드가 동시에 접근해도, 프로그램 실행에 문제가 없는 상태를 의미합니다.

StringBuffer, StringBuilder 정리

StringBuffer : 문자열 연산이 많은 Multi-Thread 환경

StringBuilder : 문자열 연산이 많은 Single-Thread 또는 Thread 신경 안쓰는 환경