• 이번 챕터는 String, StringBuilder, StringBuffer를 정리한 글과 함께 보면 좋다

https://puzzle-making.tistory.com/174

 

[Java] String, StringBuilder, StringBuffer 차이

String과 StringBuilder의 성능차이 위 사진 처럼 String을 계속해서 더해 400라인 정도의 쿼리를 만들었을때 733ms 의 실행시간이 걸렸고 StringBuilder를 사용해 똑같이 400라인의 쿼리를 만들었면 243ms의 실.

puzzle-making.tistory.com

 

 

  • 문자열 연결 연산자(+)는 여러 문자열을 하나로 합쳐주는 수단이다.
  • 문자열 연결 연산자로 문자열 n개를 잇는 시간은 n^2에 비례한다.
  • String은 불변이기 때문에 새로 연결할 경우 새로운 객체를 만들게 된다.(중요)
//문자열 연결을 잘못한 예

public String statement() {
    String result = "";
    for (int i = 0; i < numItems(); i++) {
        result += lineForItem(i); // 문자열 연결
    }
    return result;
}
// 개선 예시 - StringBuilder 사용

public String statement2() {
    StringBuilder b = new StringBuilder(numItems() * LINE_WIDTH);
    for (int i = 0; i < numItems(); i++) {
        b.append(lineForItem(i));
    }
    return b.toString();
}

+ Recent posts