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 线程安全