item 63) 문자열 연결은 느리니 주의하라
'+' 연산 동작
String을 '+' 연산으로 이어붙이는 방법은 아래와 같이 동작한다.
for문을 돌 경우 수행 시간은 n^2 에 비례한다.
String은 불변이기 때문에 두 문자열을 모두 복사해 새로운 객체로 연결하기 때문이다.
StringBuilder의 append 메서드
StringBuilder의 append 메서드를 직접 사용하면 성능이 크게 개선된다.
이 방법의 수행 시간은 선형으로 비례한다.
마무리
이 아이템의 요지는, for문으로 여러번 '+' 연산이 불릴 경우마다 새로운 객체가 생성되는 것을 방지하자는 것이다.
하지만, for문으로 돌리는 상황이 아니라면 '+' 연산을 사용해도 무방할 듯 하다.
Last updated