String은 불변입니다.
new 연산을 통해 생성된 인스턴스의 메모리 공간은 변하지 않음 (Immutable)
문자열 연산 시 새로 객체를 생성하여 오버헤드 발생 시킴
불변이므로 동기화 신경 쓰지 않아도 되어 멀티 스레드 환경 사용 가능
Garbage Collector로 제거되어야 함.
StringBuilder와 StringBuffer는 이런 String의 특징 때문에 사용하는 가변 타입이라고 볼 수 있습니다.
StringBuilder와 StringBuffer는 Thread-safe 여부의 차이가 있습니다.
StringBuilder는 비동기로 Thread-safe 하지 않습니다.
StringBuffer 는 동기로 Multi-Thread 환경에서 사용할 때는 를 사용합니다.
new 연산으로 클래스를 한 번만 만듬 (Mutable)
문자열 연산시 새로 객체를 만들지 않고, 크기를 변경시킴
'Back-end > Java' 카테고리의 다른 글
[Java] 강한 결합과 느슨한 결합 (0) | 2021.11.21 |
---|---|
[Java] try-with-resources (0) | 2021.11.21 |
[Java] Java 8에서 추가된 기능 (0) | 2021.11.19 |
[Java] 동일성(identity)와 동등성(equality) (equals(), ==) (0) | 2021.11.19 |
[Java] 객체지향이란 (0) | 2021.11.17 |