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 신경 안쓰는 환경