for (int k = 0 ; k < 10; k++){
long start = System.nanoTime();
String str="";
for (int j = 0; j <100;j++){
for (int i = 0; i < 100;i++){
str = str+String.valueOf(i);
}
}
long end = System.nanoTime();
Log.d(TAG,"str k:"+k+"cost:"+(end - start)/1000000);
}
for (int k = 0 ; k < 10; k++){
long start = System.nanoTime();
StringBuffer sb = new StringBuffer();
for (int j = 0; j <100;j++){
for (int i = 0; i < 100;i++){
sb.append(String.valueOf(i)) ;
}
}
long end = System.nanoTime();
Log.d(TAG,"StringBuffer k:"+k+"cost:"+(end - start)/1000000);
}
for (int k = 0 ; k < 10; k++){
long start = System.nanoTime();
StringBuilder sb = new StringBuilder();
for (int j = 0; j <100;j++){
for (int i = 0; i < 100;i++){
sb.append(String.valueOf(i)) ;
}
}
long end = System.nanoTime();
Log.d(TAG,"StringBuilder k:"+k+"cost:"+(end - start)/1000000);
}
str k:0cost:1241
str k:1cost:1200
str k:2cost:1211
str k:3cost:1234
str k:4cost:1207
str k:5cost:1204
str k:6cost:1210
str k:7cost:1220
str k:8cost:1206
str k:9cost:1210
StringBuffer k:0cost:3
StringBuffer k:1cost:1
StringBuffer k:2cost:2
StringBuffer k:3cost:1
StringBuffer k:4cost:1
StringBuffer k:5cost:1
StringBuffer k:6cost:1
StringBuffer k:7cost:2
StringBuffer k:8cost:1
StringBuffer k:9cost:1
StringBuilder k:0cost:1
StringBuilder k:1cost:1
StringBuilder k:2cost:1
StringBuilder k:3cost:2
StringBuilder k:4cost:1
StringBuilder k:5cost:1
StringBuilder k:6cost:1
StringBuilder k:7cost:1
StringBuilder k:8cost:2
StringBuilder k:9cost:2
效率不是一个量级的,StringBuilder线程不安全 StringBuffer 线程安全
本文通过实验对比了在Java中使用String、StringBuffer和StringBuilder进行字符串拼接的性能。结果显示,StringBuilder(线程不安全)的性能最优,其次是StringBuffer(线程安全),而传统的String拼接方式效率最低。
742

被折叠的 条评论
为什么被折叠?



