String Compare StringBuilder

Intro String Compare StringBuilder

這篇介紹String Compare StringBuilder.

String優化

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
在JDK5對String進行優化,String相加優化成StringBuilder的append

String a = "a";
String c = a + "b";

優化成

String c = new StringBuilder().append(a).append("b").toString();

在優化後,何時不能用String相加?

String s = "";
for (int i = 0; i <= 100000000; i++) {
s += String.valueOf(i);
}
會等於
for (int i = 0; i <= 100000000; i++) {
StringBuilder s = new StringBuilder().append(String.valueOf(i));
}

實際上應使用
StringBuilder s = new StringBuilder();
for (int i = 0; i <= 100000000; i++) {
s.append(String.valueOf(i));
}

兩者平均差距會在400多倍左右。