Java & Spring/자바

String vs (StringBuilder vs StringBuffer) (JAVA)

Zin0_0 2020. 10. 20. 20:35
반응형

StringBuffer vs StringBuilder (vs String)

  • String
    • 불변(immutable)의 속성을 가짐 (StringBuilder와 StringBuffer는 mutable)
    • string을 더하기 연산(+)을 하면 새로운 메모리 영역을 가리키게 변경
      • 더해지기 전 기존 문자열은 나중에 GC에 의해 사라짐
      • 즉, 새로운 String 인스턴스가 생성되는 것
  • StringBuilder vs StringBuffer
    • 가장 큰 차이점은 동기화(Synchronized)의 유무이다.
    • StringBuilder
      • 성능은 StringBuffer보다 좋지만, 동기화를 지원하지 않기 때문에, 싱글 쓰레드 환경에서 활용하는 것이 좋음
    • StringBuffer
      • 동기화(Synchronized)를 지원하여 멀티 쓰레드 환경에서 안전
        • cf) String의 경우도 불변성이기 때문에 안정성을 가짐
반응형