Java 공부
[Java] String, StringBuilder, StringBuffer의 차이점
78이
2020. 12. 10. 00:35
1. String, StringBuilder, StringBuffer 공통점
- 문자열을 저장하고 관리하는 클래스
2. String
- 한번 생성되면 할당된 공간이 변하지 않는다 = 불변
- 객체 생성 속도가 빠르다(StringBuffer, StringBuilder -> buffer크기 초기 설정 -> 생성속도 느림)
- 많은 양의 문자열 수정이 아니라면 String객체 사용이 더 효율적
- 단순 조회 연산에서는 StringBuffer, StringBuilder보다 빠름
3. StringBuilder, StringBuffer
- 한번 생성되면 할당된 공간의 크기가 변함 = 가변
- buffer크기 초기 설정해야하므로 생성속도가 느림
- 문자열 연산 등으로 기존 객체의 공간이 부족하게 되는 경우, 기존의 버퍼 크기를 늘리며 유연하게 동작
- 차이점 : 동기화 여부
▶ StringBuilder : 동기화 보장 X (StringBuffer보다 성능 좋음)
▶ StringBuffer : 각 메서드별로 Synchronized Keyword가 존재, 멀티스레드 환경에서도 동기화 지원
- String은 짧은 문자열을 더할 경우 사용합니다.
- StringBuffer는 스레드에 안전한 프로그램이 필요할 때나, 개발 중인 시스템의 부분이 스레드에 안전한지 모를 경우 사용하면 좋습니다.
- StringBuilder는 스레드에 안전한지 여부가 전혀 관계 없는 프로그램을 개발할 때 사용하면 좋습니다.