본문 바로가기

Java 공부

[Java] String, StringBuilder, StringBuffer의 차이점

 

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는 스레드에 안전한지 여부가 전혀 관계 없는 프로그램을 개발할 때 사용하면 좋습니다.

 

 

'Java 공부' 카테고리의 다른 글

[Java] 문자열 붙이는 방법  (0) 2020.12.10
[Java] 문자열 활용하기  (0) 2020.12.10
[Java] 문자열 치환하기  (0) 2020.12.09
[Java] 문자열 찾는(검색하는) 방법  (0) 2020.12.09
[Java] 문자열 값 비교  (0) 2020.12.09