본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


문자열 연결 연산자 +는 여러 문자열을 하나로 합하는 편리한 수단이지만 n개의 문자열에 연결 연산자를 반복 적용하면 연결하는데 시간은 n의 제곱만큼 비례한다. 문자열은 변경 불가능하기 때문이다.(규칙15)


아래 방법은 똑같은 결과를 표출하지만 속도의 차이가 난다. 비록 지금 배열안에 데이터가 5개밖에 없어서 성능상의 차이는 크게 없겠지만 데이터가 많아지면 속도는 기하급수적으로 차이가 난다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args) {
    String[] ktkoInfo = { "ktko""kkt""30""뱀띠""89년생" };
    
    String strInfo = "";
    StringBuilder builderInfo = new StringBuilder();
    
    for(String str : ktkoInfo) {
        strInfo += str;
    }
    
    for(String str : ktkoInfo) {
        builderInfo.append(str);
    }
    
    System.out.println(strInfo);
    System.out.println(builderInfo);
}



만족스런 성능을 얻으려면 String 대신  StringBuilder을 써야 한다. 원칙은 많은 문자열을 연결할 때 + 연산자를 피하고 StringBuilder을 이용하여 append 메서드를 사용해라.