public class PerformanceStringCompare {
private String[] args = {
"ASD",
"BCD",
"WWE",
"asdfsdfasdfasdfasdfadf",
"sdfasdfsdfasdfasdf",
"sdfsdfsdfsdfsfsfd",
"asdf sdfasdfsd f sdfasdfsdf s sdfs dfsf ",
"ASD",
"BCD",
"WWE",
"asdfsdfasdfasdfasdfadf",
"sdfasdfsdfasdfasdf",
"sdfsdfsdfsdfsfsfd",
"asdf sdfasdfsd f sdfasdfsdf s sdfs dfsf ",
"ASD",
"BCD",
"WWE",
"asdfsdfasdfasdfasdfadf",
"sdfasdfsdfasdfasdf",
"sdfsdfsdfsdfsfsfd",
"asdf sdfasdfsd f sdfasdfsdf s sdfs dfsf ",
"ASD",
"BCD",
"WWE",
"asdfsdfasdfasdfasdfadf",
"sdfasdfsdfasdfasdf",
"sdfsdfsdfsdfsfsfd",
"asdf sdfasdfsd f sdfasdfsdf s sdfs dfsf ",
"ASD",
"BCD",
"WWE",
"asdfsdfasdfasdfasdfadf",
"sdfasdfsdfasdfasdf",
"sdfsdfsdfsdfsfsfd",
"asdf sdfasdfsd f sdfasdfsdf s sdfs dfsf ",
};
public String statement() {
int length = args.length;
String result = "";
for (int i = 0; i < length; i++) {
result += args[i];
}
return result;
}
public String statementStringBuilder() {
int length = args.length;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
sb.append(args[i]);
}
return sb.toString();
}
public static void main(String[] args) {
PerformanceStringCompare pc = new PerformanceStringCompare();
long start = System.currentTimeMillis();
pc.statementStringBuilder();
long end = System.currentTimeMillis();
System.out.println((end - start) + " ms");
}
}
String의 경우 1ms이지만, StringBuilder의 경우 0ms…
이건 어마어마한 차이다..
반응형
'프로그래밍 > Java' 카테고리의 다른 글
Java - Reflection (0) | 2015.09.15 |
---|---|
Java - 객체 참조시 자료형을 인터페이스를 선호하라. (0) | 2015.09.15 |
Java - 오버로딩시 주의사항 (0) | 2015.09.15 |
Java - 변경 불가능한 객체 관한 이야기 (0) | 2015.09.15 |
Intellij에서 Java lambda 사용시 Error 해결 (0) | 2015.08.21 |