Blockmonkey

[Java] String & String Builder & StringBuffer 본문

Web Development/Back-end

[Java] String & String Builder & StringBuffer

Blockmonkey 2025. 9. 11. 11:38

 

String vs String Builder

String Builder는 문자열 타입의 가변 객체이며, String은 불변 객체라서 보다 성능적 이점을 가진다.

즉, String에서는 매번 값을 바꿀 때마다 새로운 객체를 생성하고 반면, String builder에서는 값을 수정하는 방식으로 작동하여 성능적 이점을 가지므로 지속적으로 변화하는 문자열을 다룰 때에는 String Builder를 사용하는 것이 유리하다.

 


String Builder vs String Buffer

String Buffer 또한 가변 객체이다. String Builder와의 차이점은 쓰레드 안전한 필드인가이다.

String Builder 객체는 주요 메소드가 모두 synchronized(동기화) 선언되어있기 때문이다.

하지만, 동기화로 인해 데이터 변경 속도가 느리므로 멀티쓰레드 환경에서 동시성 문제가 발생할 때 사용이 적절하다.

 


  String String Builder String Buffer
가변성 불변 (immutable) 가변 (mutable) 가변 (mutable)
스레드 안전성 안전함 (변경 불가) 안전하지 않음 스레드 안전 (동기화됨)
성능 느림 (연결 시마다 새 객체 생성) 빠름 (비동기 환경에서 추천) 느림 (동기화 때문에 비용 있음)
주요 사용처 문자열 변경이 거의 없는 때 문자열 수정 반복 때 문자열이 변경되고, 멀티스레드 환경
문자열 연결 방식 + 또는 concat() append() append()

 

 

'Web Development > Back-end' 카테고리의 다른 글

[DB] Slow Query  (0) 2025.09.27
[DB] B-Tree vs B+Tree  (0) 2025.09.22
EKS - 환경변수 관리  (1) 2025.07.21
EKS - Context  (0) 2025.07.21
EKS 사용하기  (3) 2025.07.21