一、String、StringBuilder、StringBuffer的执行效率
StringBuilder > StringBuffer > String
二、测试代码
package cn.test;public class Test {final static int COUNT = 10000 * 1;public static void main(String[] args) {stringAdd(COUNT);stringConcat(COUNT);stringBuilder(COUNT);stringBuffer(COUNT);}public static void stringAdd(int count) {long start = System.currentTimeMillis();String s = "";for (int i = 0; i < count; i++) {s += "1";}System.out.println("StringAdd:" + (System.currentTimeMillis() - start));}public static void stringConcat(int count) {long start = System.currentTimeMillis();String s = "";for (int i = 0; i < count; i++) {s = s.concat("1");}System.out.println("StringConcat:" + (System.currentTimeMillis() - start));}public static void stringBuilder(int count) {long start = System.currentTimeMillis();StringBuilder s = new StringBuilder();for (int i = 0; i < count; i++) {s.append("1");}System.out.println("StringBuilder:" + (System.currentTimeMillis() - start));}public static void stringBuffer(int count) {long start = System.currentTimeMillis();StringBuffer s = new StringBuffer();for (int i = 0; i < count; i++) {s.append("1");}System.out.println("StringBuffer:" + (System.currentTimeMillis() - start));}
}
COUNT的值设置
(1)10000*1
StringAdd:89
StringConcat:16
StringBuilder:1
StringBuffer:1
(2)10000*10
StringAdd:4621
StringConcat:1383
StringBuilder:3
StringBuffer:4
(3)10000*100
StringAdd:215076
StringConcat:154182
StringBuilder:16
StringBuffer:18
(4)10000*1000(String花费时间太多了,没办法测试这个数量级)
StringBuilder:50
StringBuffer:264
(5)10000*10000(String花费时间太多了,没办法测试这个数量级)
StringBuilder:377
StringBuffer:2558