본문 바로가기
CS/JAVA

문자열 클래스, 다양한 친구들의 이야기를 들어보자

by upswp 2021. 3. 21.
분류 String StringBuffer StringBuilder
변경 Immutable Mutable Mutable
동기화 Synchronized 가능 (Thread-safe) Synchronized 불가능.  

 

String Class

  • new 연산자를 사용하여 생성된 인스턴스의 메모리 공간은 변하지 않는다. (Immutable)
  • Garbage Collector로 제거되어야 한다.
  • 문자열 연산시 새로 객체를 만드는 Overhead가 발생한다.
  • 객체가 불변하므로, Multithread에서 동기화를 신경쓸 필요가 없음.(조회 연산에 매우 큰 장점)
  • 문자열 연산이 적고, 조회가 많은 Multithread 환경에서 좋다.

StirngBuffer Class ,StringBuilder Class 특징

  • 공통점
    • new 연산으로 클래스를 한번만 만든다.(Mutable)
    • 문자열 연산시 새로 객체를 만들지 않고, 크기를 조정한다.
    • StringBuffer와 StringBuilder 클래스의 메서드가 동일하다.
  • 차이점
    • StringBuffer는 Thread-safe하다.
    • StringBuilder는 Thread-safe하지 못하다.
  • StringBuffer : 문자열 연산이 많은 Multithread환경에서 사용
  • StringBuilder : 문자열 연산이 많고 Single-Thread 또는 Thread 신경 안쓰는 환경때 사용

참고

 

 

[Java] 문자열 클래스 | 👨🏻‍💻 Tech Interview

[Java] 문자열 클래스 분류 String StringBuffer StringBuilder 변경 Immutable Mutable Mutable 동기화 Synchronized 가능 (Thread-safe) Synchronized 불가능. 1. String 특징 new 연산을 통해 생성된 인스턴스의 메모리 공간은 변

gyoogle.dev