[Java] String vs StringBuffer vs StringBuilder

RUNGOAT·2023년 3월 25일
0

Java

목록 보기
1/5

String vs StringBuffer vs StringBuilder 차이

String

  • 불변(immutable)
  • 문자열 수정 시 새로운 String 인스턴스가 생성된다.
  • 멀티쓰레드 환경에서 안전(thread-safe)
  • 문자열 추가, 수정, 삭제 등의 연산이 빈번하게 발생하면 힙 메모리(Heap)에 많은 임시 가비지(Garbage)가 생성되어 힙 메모리 부족으로 성능에 치명적인 영향을 끼친다.
String str = "hello";	// 메모리 영역 생성
str = str + "world";	// "hello" 메모리 영역은 Garbage로 남고 새로운 메모리 영역 생성

StringBuffer

  • 가변(mutable)
  • 멀티쓰레드 환경에서 안전(thread-safe)

StringBuilder

  • 가변(mutable)
  • 동기화 지원 X
  • 단일쓰레드에서의 성능 StringBuffer 보다 뛰어나다.

정리

String : 문자열 연산이 적고 멀티쓰레드 환경일 경우
StringBuffer : 문자열 연산이 많고 멀티쓰레드 환경일 경우
StringBuilder : 문자열 연산이 많고 단일쓰레드이거나 동기화를 고려하지 않아도 되는 경우

참고

profile
📞피드백 너무나 환영

0개의 댓글