String vs StringBuilder vs StringBuffer

String

  • 문자열을 더할 때마다 새로운 주소값을 가진 객체를 만든다. 그리고 사용된 객체는 gc의 관리 대상이 된다. → GC를 하면 할수록 CPU를 사용하게 되고 시간도 많이 소요됨. 메모리 소요를 최소화 해야함.

  • 짧은 문자열을 더할 때 사용

StringBuilder

  • StringBuilder 소스코드 일부

  • 동기화를 하지 않음(그러기에 리소스가 적게 들어 StringBuffer에 비해 빠름)

  • 스레드 safe 여부에 관계 없는 개발 ex) 메서드 내 변수

StringBuffer

  • StringBuffer 소스코드 일부

  • 기본적으로 synchronized 가 붙어있음. → 동기화

  • 스레드 안전한 프로그램 사용시

  • static 문자열 변경, singleton 클래스에 선언된 문자열일 경우

  • 성능비교 소스 코드

Last updated