CS

[java] String, StringBuilder, StringBuffer

KJihun 2023. 11. 24. 15:32
728x90

 

 

String
   - 불변(immutable) 클래스. 한 번 생성된 내용은 변경할 수 없다.

   - 수정이 발생할 때마다 새로운 String 객체가 생성되며, 문자열을 수정하는 게 아닌 새로운 문자열을 반환한다.
   - 수정이 빈번하게 발생하는 경우에는 메모리 공간을 많이 차지하고 성능에 영향을 줄 수 있다.


StringBuilder
   - 가변(mutable) 클래스. 문자열을 수정할 수 있다.
   - 수정이 발생할 때마다 기존의 버퍼를 수정하여 성능 향상을 제공한다.
   - 단일 스레드 환경에서 안전하며, 대부분의 문자열 연산에 효율적이다.


StringBuffer
   - 가변(mutable) 클래스. 문자열을 수정할 수 있다.
   - thread-safe하도록 설계되어 있다.
   - 멀티 스레드 환경에서 동기화(synchronization)되어 안전하게 동작한다.