핵심 정리
문자열 변경이 잦은 경우 String(불변) 대신 StringBuilder(가변)를 사용하자.
문자열 연결 연산자(+)의 성능 문제
: 문자열 연결 연산자(+)로 문자열 n개를 잇는 시간은 n^2에 비례한다.
- 문자열은 불변 클래스이므로 두 문자열을 복사해야 하므로 성능 저하가 발생한다.
예시 1
// 문자열 연결을 잘못 사용한 예 - 느리다!
public String statement() {
String result = "";
for (int i = 0; i < numItems(); i++) {
result += lineForItem(i); // 문자열 연결
}
return result;
}
변화가 잦을 경우 String 대신 StringBuilder를 사용하자.
예시 2
// StringBuilder를 사용하면 문자열 연결 성능이 크게 개선된다.
public String statement2() {
StringBuilder sb = new StringBuilder(numItems() * LINE_WIDTH);
for (int i = 0; i < numItems(); i++) {
sb.append(lineForItem(i));
}
return sb.toString();
}
'Language > Java' 카테고리의 다른 글
[effective java] 아이템 65. 리플렉션보다는 인터페이스를 사용하라. (0) | 2023.07.27 |
---|---|
[effective java] 아이템 64. 객체는 인터페이스를 사용해 참조하라. (0) | 2023.07.27 |
[effective java] 아이템 62. 다른 타입이 적절하다면 문자열 사용을 피하라. (0) | 2023.07.27 |
[effective java] 아이템 61. 박싱된 기본 타입보다는 기본 타입을 사용하라. (0) | 2023.07.27 |
[effective java] 아이템 60. 정확한 답이 필요하다면 float와 double은 피하라. (0) | 2023.07.17 |