본문 바로가기

이것 저것/잡학다식

String과 StringBuilder의 차이점




String은 문자열 값이 변경될 경우 새로운 공간을 할당해서 변경된 값을 넣고 기존 공간을 버립니다.
StringBuilder는 클래스 내부에 문자열 관리를 위한 공간이 따로 있고, 문자열 값이 변경될 경우 내부 공간을 유지하면서 값을 변경합니다.

만약 문자열 조립을 한다면 조립 연산할때마다 값이 변경될텐데, String을 사용하면 매번 새로운 공간 할당을 하기 때문에 효율이 그다지 좋지 않게 됩니다. 이런 상황에 StringBuilder를 사용하면 추가된 값 영역만 추가로 공간 할당을 하고 기존 공간은 그대로 사용하기 때문에 String 을 쓸때보다 효율적인 코드가 됩니다.

기본적으로 StringBuilder 는 String 보다 객체가 무겁기 때문에, 위에 예를 들어 설명한 문자열 조립 같은 상황 이외의 일반적인 경우에는 그냥 String 을 쓰시면 됩니다.