본문 바로가기
개발자 기술 면접/JAVA

[JAVA] String & StringBuilder & StringBuffer의 차이

by se-black 2023. 12. 24.
String

- String은 불변 객체입니다.

- 한번 생성된 객체의 값을 변경할 수 없으며 문자열을 조작할 때 마다 새로운 String 객체가 생성되어 메모리를 차지하게 됩니다.

 

StringBuilder

- StringBuilder는 가변 객체입니다.

- 문자열 조작 시에 기존 객체의 값을 변경합니다. 동기화를 지원하지 않아 스레드 세이프하지 않습니다. 하지만 동기화에 따른 오버헤드가 없기 때문에 단일 스레드 환경에서는 더 높은 성능을 제공합니다.

 

StringBuffer

- StringBuffer는 가변 객체입니다.

- 문자열 조작 시에 기존 객체의 값을 변경합니다. 멀티 스레드 환경에서 동기화를 지원하여 안전하게 사용할 수 있습니다. 하지만 동기화로 인한 오버헤드가 있어 단일 스레드 환경에서는 성능이 저하될 수 있습니다.

728x90