아이템 63. 문자열 연결은 느리니 주의하라

Mando·2023년 11월 21일
0

이펙티브 자바

목록 보기
2/10
post-thumbnail

문자열 연결 연산자(+)는 성능저하가 발생한다.

문자열 연결 연산자로 문자열 n개를 잇는 시간은 n^2에 비례한다.
또한, 문자열은 불변이라서, 두 문자열을 연결할 경우 두 문자열의 내용을 모두 복사해야 한다.

public String statement() {
	String result = "";
    for (int i=0; i<numItems(); i++){
    	result += lineForItem(i); //문자열 연결
    }
    return result;
}
public String statement2() {
	StringBuilder b = new StringBuilder(numItems() * LINE_WIDTH);
    for ( int i = 0; i < numItems(); i+=)
    	b.append(lineForItem(i));
    return b.toString();
}


성능을 포기하고 싶지 않다면 String 대신 StringBuilder를 사용하자.

0개의 댓글