[Java] StringBuffer 와 StringBuilder 중 뭘 써야 할까?

String vs StringBuffer & StringBuilder

String 과 StringBuffer, StringBuilder 와의 차이점은 불변성 이다.


StringBuffer vs StringBuilder

둘의 가장 큰 차이점은 동기화 유무 이다.

StringBuffer는 동기화 키워드를 지원하여 멀티쓰레드 환경에서 안전하다.

StringBuilder 는 동기화를 지원하지 않기 때문에 멀티쓰레드 환경에서의 사용은 적합하지 않지만, 단일쓰레드에서의 성능은 StringBuffer 보다 뛰어나다.


그럼 뭘 써야할까?

  • String
    • 문자열 연산이 적고 멀티쓰레드 환경인 경우
  • StringBuffer
    • 문자열 연산이 많고 멀티쓰레드 환경인 경우
  • StringBuilder
    • 문자열 연산이 많고 단일쓰레드 환경인 경우

위 환경에 맞춰서 사용하면 되지만, 잘 모르겠다면 멀티쓰레드 환경에서도 안정성이 보장 된 StringBuffer 를 사용하면 된다.

Tags:

Updated:

Leave a comment