분류 | String | StringBuffer | StringBuilder |
변경 | Immutable | Mutable | Mutable |
동기화 | Synchronized 가능 (Thread-safe) | Synchronized 불가능. |
String Class
- new 연산자를 사용하여 생성된 인스턴스의 메모리 공간은 변하지 않는다. (Immutable)
- Garbage Collector로 제거되어야 한다.
- 문자열 연산시 새로 객체를 만드는 Overhead가 발생한다.
- 객체가 불변하므로, Multithread에서 동기화를 신경쓸 필요가 없음.(조회 연산에 매우 큰 장점)
- 문자열 연산이 적고, 조회가 많은 Multithread 환경에서 좋다.
StirngBuffer Class ,StringBuilder Class 특징
- 공통점
- new 연산으로 클래스를 한번만 만든다.(Mutable)
- 문자열 연산시 새로 객체를 만들지 않고, 크기를 조정한다.
- StringBuffer와 StringBuilder 클래스의 메서드가 동일하다.
- 차이점
- StringBuffer는 Thread-safe하다.
- StringBuilder는 Thread-safe하지 못하다.
- StringBuffer : 문자열 연산이 많은 Multithread환경에서 사용
- StringBuilder : 문자열 연산이 많고 Single-Thread 또는 Thread 신경 안쓰는 환경때 사용
참고
'CS > JAVA' 카테고리의 다른 글
Guava에 대해서 알아보자! (0) | 2021.04.30 |
---|---|
Primitive type VS Reference type , 두 친구의 이야기를 들어보자 (0) | 2021.03.21 |
Call by value와 Call by reference, 비슷한 이름이지만 전혀 다른 두 친구 (0) | 2021.03.20 |
JAVA Compile 과정, 이 일대기를 들어보자 (0) | 2021.03.20 |
Java Virtual Machine 이 친구의 이야기를 들어보자. (0) | 2021.03.19 |