Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

StringBuffer 객체 초기화하기

문자열을 만들때는 보통 StringBuffer를 사용한다. StringBuilder인가도 있지만 사용해 본적도 없고 StringBuffer대신 쓸 이유는 아직 잘 모르겠다. 하지만 문자열을 만드는데는 단연코 String으로 +로 이어붙히는것보다는 훨씬 빠르다.


StringBuffer sql = new StringBuffer(" SELECT col1, col2, col3, col4 ");
sql.append(" FROM table1  ");
sql.append(" WHERE col1 = 1  ");


머 위의같은 코드들... append()를 이용해서 계속 이어붙힐 수 있고 속도도 빠르지만 이 StringBuffer객체를 재사용해야할 때가 있다. sql2를 만들기는 좀 그러니까...

가장 쉽게 생각할 수 있는 건 null이다.


sql = null;
sql = new StringBuffer(" SELECT col1, col2, col3, col4 ");

null로 객체 없애버리고 다시 새로 생성하는 것이다.  일반적으로 초기에 가장 많이 쓰는 방식이지 싶다.

또 하나는 setLength(0)이다.


sql.setLength(0);
sql.append(" SELECT col1, col2, col3, col4  ");

StringBuffer객체는 그대로 놔두고 setLength함수를 이용해서 길이를 0으로 설정해서 기존에 가지고 있던 문자열을 날려보리고 append로 새로 이어붙히는 것이다.


성능테스트는 안해봤지만 크게 차이는 나지 않을것 같기는 하지만 그래도 객체를 새로 생성하는 것보다는 길이를 0으로 만드는 것이 좀더 빠르지 않을까 생각한다.

간단한 것들은 잘 안적었더니 이런게 더 잘 찾기 힘들단 말야 ㅎ
2009/01/08 02:51 2009/01/08 02:51