首页 > 新闻动态 >  

新闻动态
NEWS

字符串 —— String?StringBuffer?StringBuilder?

添加时间:2013-8-12 点击量:

字符串常用的操纵就是拼接,希罕是SQL语句的拼接。


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



StringBuffer:



 1     public void testStringBuffer() {

2 long start = System.currentTimeMillis();
3 StringBuffer sb = new StringBuffer();
4
5 forint i = 0; i < COUNT; i++) {
6 sb.append(STR_INIT);
7 }
8 long end = System.currentTimeMillis();
9
10 System.out.println(StringBuffer 耗时: + (end - start));
11 }



运行成果:根蒂根基在50毫秒



StringBuilder:



 1     public void testStringBuilder() {

2 long start = System.currentTimeMillis();
3 StringBuilder sb = new StringBuilder();
4
5 forint i = 0; i < COUNT; i++) {
6 sb.append(STR_INIT);
7 }
8 long end = System.currentTimeMillis();
9
10 System.out.println(StringBuilder 耗时: + (end - start));
11 }



运行成果:均匀50毫秒,最低30多毫秒,高90多毫秒



String:



 1     public void testString() {

2 long start = System.currentTimeMillis();
3 String s = ;
4
5 forint i = 0; i < COUNT; i ++) {
6 s += STR_INIT;
7 }
8
9 long end = System.currentTimeMillis();
10
11 System.out.println(Str 耗时: + (end - start));
12 }



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




代码申明:


for轮回的次数(COUNT)为 10000





StringBuffer和StringBuilder的差别:


StringBuffer——线程安然的


StringBuilder——非线程安然


JDK API建议:若是不涉及线程题目,建议应用StringBuilder



小我建议:当须要字符串做拼接时,应用StringBuilder吧!


所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》
分享到: