public void testConcat() {
System.out.println(“>>> testConcat() <<<”);
String str = “”;
long start = System.currentTimeMillis();
for (int i = 0; i < max; i++) {
str = str.concat(“a”);
}
long end = System.currentTimeMillis();
long cost = end - start;
System.out.println(" {str.concat(“a”)} cost=" + cost + " ms");
}
public void testJoin() {
System.out.println(“>>> testJoin() <<<”);
long start = System.currentTimeMillis();
List list = new ArrayList();
for (int i = 0; i < max; i++) {
list.add(“a”);
}
long end1 = System.currentTimeMillis();
long cost1 = end1 - start;
StringUtils.join(list, “”);
long end = System.currentTimeMillis();
long cost = end - end1;
System.out.println(" {list.add(“a”)} cost1=" + cost1 + " ms");
System.out.println(" {StringUtils.join(list, “”)} cost=" + cost
+ " ms");
}
public void testStringBuffer() {
System.out.println(“>>> testStringBuffer() <<<”);
long start = System.currentTimeMillis();
StringBuffer strBuffer = new StringBuffer();
for (int i = 0; i < max; i++) {
strBuffer.append(“a”);
}
strBuffer.toString();
long end = System.currentTimeMillis();
long cost = end - start;
System.out.println(" {strBuffer.append(“a”)} cost=" + cost + " ms");
}
public void testStringBuilder() {
System.out.println(“>>> testStringBuilder() <<<”);
long start = System.currentTimeMillis();
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < max; i++) {
strBuilder.append(“a”);
}
strBuilder.toString();
long end = System.currentTimeMillis();
long cost = end - start;
System.out
.println(" {strBuilder.append(“a”)} cost=" + cost + " ms");
}
}
> 测试结果:
- 执行100次, private static final int max = 100;
testPlus() <<<
{str + “a”} cost=0 ms
testConcat() <<<
{str.concat(“a”)} cost=0 ms
testJoin() <<<
{