[이펙티브 자바] 아이템 63. 문자열 연결은 느리니 주의하라

June·2022년 3월 16일
0

[이펙티브자바]

목록 보기
57/72

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

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

궁금증

네오의 강의 시간에 바이트 코드를 봤을 때, String 연산을 해도 결국 최적화가 되어 내부적으로 StringBuilde가 사용되긴 하였다.

물론 수동으로 최적화 할 수 있는 부분은 최적화 하는게 좋다고 하였다.

JDK 5이상부터는 String으로 더하기 연산을 할 경우, 컴파일할 때 자동으로 StringBuilder로 변환을 해준다. 하지만 for 루프와 같이 반복 연산을 할 때에는 자동으로 변환을 해주지 않으므로 꼭 필요하다.

0개의 댓글