String은 항상 StringBuilder로 변환될까?
JDK 1.5 버전 이후부터, String의 + 연산은 컴파일시에 StringBuilder를 사용하도록 자동변환되어 성능 최적화가 이뤄진다고 알려져 있습니다. 그러나 String은 항상 StringBuilder로 변환되지 않습니다. String 연산을 수행하는 몇가지의 예제를 준비했습니다. String을 연산하는 소스코드를 컴파일하고, 다시 디컴파일하여 성능최적화가 이뤄졌는지 확인해보겠습니다. (디컴파일러는 JAD를 사용하였으며, 예제코드들은 "012"라는 문자열을 이어붙여서 만드는 작업을 수행합니다.) 예제1) 한줄로 모두 선언한 경우 //컴파일 전 소스파일 String str1 = "0" + "1" + "2"; //컴파일 이 후, 디컴파일 한 소스파일 String str1 = "012"; 한줄로 모두..
Java
2020. 4. 1. 22:12