String
- String은 불변 객체입니다.
- 한번 생성된 객체의 값을 변경할 수 없으며 문자열을 조작할 때 마다 새로운 String 객체가 생성되어 메모리를 차지하게 됩니다.
StringBuilder
- StringBuilder는 가변 객체입니다.
- 문자열 조작 시에 기존 객체의 값을 변경합니다. 동기화를 지원하지 않아 스레드 세이프하지 않습니다. 하지만 동기화에 따른 오버헤드가 없기 때문에 단일 스레드 환경에서는 더 높은 성능을 제공합니다.
StringBuffer
- StringBuffer는 가변 객체입니다.
- 문자열 조작 시에 기존 객체의 값을 변경합니다. 멀티 스레드 환경에서 동기화를 지원하여 안전하게 사용할 수 있습니다. 하지만 동기화로 인한 오버헤드가 있어 단일 스레드 환경에서는 성능이 저하될 수 있습니다.
반응형
'개발자 기술 면접 > JAVA' 카테고리의 다른 글
[JAVA] Call by Reference와 Call by Value의 차이 (0) | 2023.12.25 |
---|---|
[JAVA] 클래스, 객체, 인스턴스의 차이 (0) | 2023.12.25 |
[JAVA] JAVA의 컴파일 과정 (0) | 2023.12.25 |
[JAVA] 객체 지향 프로그래밍이란? (0) | 2023.12.24 |
[JAVA] 오버로딩과 오버라이딩의 차이 (0) | 2023.12.24 |