String과 StringBuffer 속도 비교
public class TestStringBuffer { public static void main(String[] args) { // String 의 속도 테스트 long start = System.currentTimeMillis();//현재 초 String str = "Hello"; for (int i = 0; i < 10000; i++) { // 만번 반복 str += "JavaWorld";//HelloJavaWorldJavaWorld.... }//for long end = System.currentTimeMillis(); long elap = end - start; System.out.println("걸린 시간 : " + elap + "밀리 초");//예) 걸린 시간 : 2390밀리 초 System.out.println("걸린 시간 : " + elap/1000 + " 초");//예) 걸린 시간 : 2 초 // StringBuffer의 속도 체크 long startTime = System.currentTimeMillis(); StringBuffer sb = new StringBuffer("Hello"); for (int i = 0; i < 10000; i++) { sb.append("JavaWorld"); }//for long endTime = System.currentTimeMillis(); long elapTime = endTime - startTime; System.out.println("걸린 시간 : " + elapTime + " 밀리 초");//예) 걸린 시간 : 16 밀리 초 }//main }//end |
실제로 String으로 만번 더할 경우는 없을 것입니다.
그러나, 속도 비교를 위해서 테스트해 볼 필요는 있습니다.
실무에서 SQL 문장을 String 으로 했을 경우와 StringBuffer로 했을 경우 속도 차이가 큽니다.
물론, 최근 JDK는 최적화가 많이 되어 String을 써도 괜챦다고들 하지만
Java EE의 경우 등 예전 버젼의 JDK 를 쓰는 경우도 많고 기타 등등의 이유로
역시 StringBuffer 를 쓰는 것이 좋을 것입니다.