기타/면접
[면접] Java에서 String과 StringBuilder, StringBuffer 차이점
조쏘닉
2023. 9. 12. 22:23
1. String
- 한번 값이 할당되면 변하지 않는 불변(immutable)
- 참조변수가 가리키는 곳을 변경(새로운 인스턴스가 생성)하고 기존 할당되어 있던 메모리 영역은 Garbage로 남아있다가 GC(Garbage Collection)에 의해 사라지게 됨
- 문자열이 변하지 않고 자주 읽어 들이는 곳에서 사용
2. StringBuilder, StringBuffer
- 한번 값이 할당되더라도 다른 값이 할당되면 변하는 가변(mutable)
- 문자열이 자주 변경되는 곳에서 사용
* StringBuilder와 StringBuffer 차이점
- StringBuilder는 동기화를 지원하지 않기 때문에 단일스레드 환경에서 적합
- StringBuffer는 동기화를 지원하여 멀티스레드 환경에서 Thread Safe
참고