String
- 불변 객체, 한 번 생성된 문자열을 수정할 수 없다
- 가비지 컬렉션으로 제거되어야 한다
- 문자열 연산시 새로운 객체를 만드는 오버헤드가 발생한다
- 객체가 불변하므로 멀티 쓰레드 환경에서 안전하다
String : 문자열 연산이 적고, 조회가 많은 멀티 스레드 환경에서 좋다
StringBuffer & StringBuilder
- 가변 객체, 문자열 수정 시 새로 객체를 생성하지 않고 크기를 변경
- 클래스의 메서드가 동일함
StringBuffer : 멀티 쓰레드 동기화 적용 스레드 안전
StringBuilder : 멀티 쓰레드 동기화 x 스레드 안전 x
특성 | String | StringBuffer | StringBuilder |
불변성 | 불변 | 가변 | 가변 |
스레드 안전 | 스레드 안전 | 스레드 안전(Synchronized) | 스레드 안전 x |
속도 | 느림 | 느림 | 빠름 |
사례 | 읽기 위주 작업 | 멀티스레드에서 문자열 변경 | 단일 스레드에서 문자열 변경 |
'Java' 카테고리의 다른 글
JAVA 캐스팅 (0) | 2024.12.02 |
---|---|
JAVA JVM(Java Virtual Machine) (1) | 2024.12.02 |
JAVA 컴파일 과정 (0) | 2024.12.02 |
JAVA Stack & Queue (1) | 2024.10.04 |
JAVA List, ArrayList, LinkedList (2) | 2024.10.03 |