달력

012018  이전 다음

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 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



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

Posted by 오산돌구
TAG