本帖最后由 love_boolean 于 2012-12-14 00:20:06 编辑

解决方案 »

  1.   

    如果预估一下最终string的长度,在初始化StringBuilder/StringBuffer时传入,性能更好一点。
      

  2.   

    这个“优化”有点自以为是http://www.ticmy.com/?p=69
      

  3.   

    这样简短的字符串自然看不到性能上的差异,下面是拼接字符串的代码:你可以测试一下,这个值并不一定准备,而是跟系统性能相关。实现原理:在拼接之前使用一个变量记录当前时间,然后在拼接(for)之后,记录当前时间,两者相减便得出了结果。import java.util.Calendar;
    import java.util.Date;
    public class TestTop  {

     public void StringBufferTest(){
     long Fristtime = new Date().getTime();
        System.out.println(Fristtime);
     StringBuffer sf = new StringBuffer(1);
     for (int i = 0; i < 1000; i++) {
    sf.append("\t"+i);
    System.out.println(sf.toString());
    }
     long Lasttimes = new Date().getTime();
        System.out.println(Lasttimes-Fristtime);//1704 1973 1685 1695 1790 分别为5次的测试值
     }

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    TestTop test=new TestTop();

    //使用StringBuffer.
    test.StringBufferTest();

    //使用String.
    /*
        String sk = "1";
        long Fristtime = new Date().getTime();
        System.out.println(Fristtime);
        for (int i = 0; i < 1000; i++) {
    sk=sk+"\t"+i;
    System.out.println(sk);
    }
        long Lasttimes = new Date().getTime();
        System.out.println(Lasttimes-Fristtime);//1760 1741 1476 1764 1677 分别为5次的测试值
        */ }
    }
      

  4.   

    有兴趣的去看这篇文章:
    http://blog.csdn.net/zhangerqing/article/details/8093919
      

  5.   

    StringBuffer在操作经常变化的字符串时,效率确实比String 高很多。