String?StringBuffer?StringBuilder?

字符串常用的操作就是拼接,香港空间,特别是SQL语句的拼接。

做了个简单的试验,它们之间的差别惊人!

StringBuffer:

testStringBuffer() { 2long start = System.currentTimeMillis(); 3StringBuffer sb = new StringBuffer();(int i = 0; i < COUNT; i++) { 6 sb.append(STR_INIT); 7 } 8long end = System.currentTimeMillis(); 910System.out.println(“StringBuffer 耗时:” + (end – start));11}

运行结果:基本在50毫秒

StringBuilder:

testStringBuilder() { 2long start = System.currentTimeMillis(); 3StringBuilder sb = new StringBuilder();(int i = 0; i < COUNT; i++) { 6 sb.append(STR_INIT); 7 } 8long end = System.currentTimeMillis(); 910System.out.println(“StringBuilder 耗时:” + (end – start));11}

运行结果:平均50毫秒,香港虚拟主机,最低30多毫秒,最高90多毫秒

String:

testString() { 2long start = System.currentTimeMillis(); 3String s = “”;(int i = 0; i < COUNT; i ++) { 6s += STR_INIT; 7 }end = System.currentTimeMillis();1011System.out.println(“Str 耗时:” + (end – start));12}

运行结果:2分多钟(是StringBuffer,StringBilder的上千倍)

代码说明:

for循环的次数(COUNT)为10000

StringBuffer和StringBuilder的区别:

StringBuffer——线程安全的

StringBuilder——非线程安全

JDKAPI建议:如果不涉及线程问题,建议使用StringBuilder

个人建议:当需要字符串做拼接时,使用StringBuilder吧!

,香港空间知已知彼,百战百胜。

String?StringBuffer?StringBuilder?

相关文章:

你感兴趣的文章:

标签云: