개발하면서/etc

String vs StringBuffer

오산돌구 2009. 4. 17. 14:31
<SPAN id=tx_marker_caret></SPAN>  String str = new String ("Stanford  ");
     str += "Lost!!";
바이트 코드로 변환하면 아래와 같다.

String '+'연산을 할때 임시저장소 StringBuffer을 만든뒤 append를 한 후 다시 String으로 변환하는 작업을 한다.

바이트 코드로 변환하면 다음과 같다

StringBuffer str = new StringBuffer ("Stanford ");str.append("Lost!!");

StringBuffer는 append연산을 위해 임시저장소도 사용하지 않고 변환작업 없이 수행을 한다.

StringBuffer를 사용하라는 결론이었다.

자료 : http://www.javaworld.com/javaworld/jw-03-2000/jw-0324-javaperf.html



여기에서는 용도에 맞게 사용하라는 것.

String과 StringBuffer 연산 시간을 비교하는 소스의 잘못을 짚어주고, StringBuffer의 Array doubling이라는 개념을 설명해주었다.

여기서는 쿼리문같이 한번의 대입연산에서 '+'연산으로 긴 문자열을 만들경우는 String을

루프를 돌거나 중간중간 추가하려면 StringBuffer를 사용하라는 말을 한다.

자료 : http://youngrok.com/wiki/wiki.php/StringVsStringBuffer



이 글은 저의 이해 및 정리한 것을 적은것이므로 실제와 다를 수 있습니다.