728x90
(1) String, StringBuffer, StringBuilder란?
- 자바에서 문자열을 다루는 클래스이다.
(2) String, StringBuffer, StringBuilder 차이점은?
- String - 한번 생성되면 할당된 메모리 공간이 변하지 않습니다. + 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라, 새로운 String 객체를 만든 후, 새 String 객체에 연결된 문자열을 저장하고, 그 객체를 참조하도록 합니다.
- StringBuffer, StringBuilder - 크기가 유연하게 변하는 가변적인 특성을 가지고 있으며 제공하는 메서드도 같고 사용하는 방법도 동일합니다. 하지만 두 클래스는 동기화 지원의 유무가 다릅니다. StringBuffer는 각 메서드 별로 synchronized keyword가 존재하여 멀티 스레드 상태에서 동기화를 지원하고 StringBuilder는 단일 스레드 환경에서만 사용하도록 설계되어 있습니다. StringBuilder가 StringBuffer보다 속도는 더 빠르지만 현업에서는 언제 멀티스레드 환경에서 돌아가지 알지 못하기에 안정적인 StringBuffer로 통일하여 코딩하는것이 좋습니다.
String | String Buffer | String Builder | |
저장소 | String pool | Heap | Heap |
수정 가능 | No (immutable) | Yes (mutable) | Yes (mutable) |
스레드 동기화 | Yes | Yes | No |
퍼포먼스 | Fast | Slow | Fast |
참조 - https://ifuwanna.tistory.com/221, https://coding-factory.tistory.com/546
반응형
'Study > Java' 카테고리의 다른 글
[Java] Java의 대표 Collection (0) | 2021.06.29 |
---|