[CS][Java] String vs StringBuilder vs StringBuffer

손경이·2024년 4월 10일
0

CS Study

목록 보기
3/25

String vs StringBuilder vs StringBuffer


Java에서 문자열을 다루는 대표적인 클래스


> String

  • String의 가장 큰 특징은 불변(immutable) 의 속성을 가짐
    • 불변하기 때문에 문자열을 수정하는 시점에 새로운 String 인스턴스가 생성
  • 변하지 않는 문자열을 자주 읽을 경우에 사용
  • Garbage Collector로 제거되어야 함
  • 불변성을 가지기 때문에 멀티쓰레드 환경에서 안전(thread-safe)

> StringBuilder/StringBuffer

| 공통점

  • 가변(mutable)성을 가짐
    • 가변성을 가지기 때문에 .append() 등의 메서드를 사용해서 동일 객체내에서 문자열을 변경
  • 문자열의 추가,수정,삭제가 빈번하게 발생할 경우 사용
  • 메서드는 동일함

| 차이점

  • StringBuilder
    • 동기화 지원 하지 않으므로 단일쓰레드나 동기화를 고려하지 않을 때 사용
    • 동기화를 고려하지 않는 만큼 단일쓰레드에서의 성능은 StringBuffer 보다 뛰어남
  • StringBuffer
    • 동기화 지원으로 멀티쓰레드 환경에서 안전(thread-safe)

> 프로젝트에 적용


참고

0개의 댓글