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

+ Recent posts