패스잇
백엔드 개발 · 기초

Java의 String, StringBuilder, StringBuffer의 차이점은 무엇인가요?

힌트 · 불변성, 동기화, 성능 측면에서 비교해보세요.

불변성가변성동기화스레드 안전성능

모범답안

네, Java에서 String, StringBuilder, StringBuffer는 문자열을 다루는 클래스이지만 중요한 차이점이 있습니다.

가장 큰 차이점은 불변성입니다. String은 불변 클래스이기 때문에 한 번 생성된 String 객체의 내용은 변경할 수 없습니다. 문자열을 수정하는 연산을 수행하면 새로운 String 객체가 생성됩니다.

반면 StringBuilder와 StringBuffer는 가변 클래스입니다. 즉, 객체의 내용을 직접 수정할 수 있습니다.

StringBuilder와 StringBuffer의 차이점은 동기화 여부입니다. StringBuffer는 동기화를 지원하므로 멀티 스레드 환경에서 안전하게 사용할 수 있습니다. 반면 StringBuilder는 동기화를 지원하지 않기 때문에 단일 스레드 환경에서 더 빠른 성능을 보입니다.

따라서, 문자열 내용이 자주 변경되는 경우 StringBuilder (단일 스레드) 또는 StringBuffer (멀티 스레드)를 사용하는 것이 String을 사용하는 것보다 성능상 유리합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Java / Spring 면접 질문

← Java / Spring 면접 질문 전체 보기