백엔드 면접준비/Java
JAVA 기본
oss0202
2025. 3. 16. 18:17
Q. String, StringBuilder, StringBuffer
String은 불변성으로 잦은 문자열 변경 시 성능 저하가 있고,
StringBuilder는 단일 스레드에서 성능이 뛰어나며,
StringBuffer는 멀티 스레드 환경에서 동기화로 인해 안전하지만 성능은 조금 떨어진다.
| 구분 | String | StringBuilder | StringBuffer |
| 속도 | 느림 (잦은 변경 시) | 빠름 | 보통 (Builder보다는 느림) |
| 스레드 안전성 | 불변 → Thread-safe | Thread-safe 하지 않음 | Thread-safe |
| 동기화 여부 | 동기화 불필요 | 동기화하지 않음 | 동기화(synchronized) 되어있음 |
| 불변성 | 불변(Immutable) | 가변(Mutable) | 가변(Mutable) |