字符串 —— 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吧!


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