1. 程式人生 > >String +和StringBuilder的append的區別

String +和StringBuilder的append的區別

  • 字串連線,用+進行連線,其實內部也是通過StringBuilder的append來實現的;
  • 一般情況進行字串拼接用+就可以,系統內部會進行優化,但是如果是迴圈拼接,則需要用StringBuilder的append來實現;
  • 原因:因為如果是迴圈拼接,那麼系統會在迴圈體內部建立StringBUilder,這樣會造成空間浪費;而用StringBuilder進行顯示拼接時,可以定義在外面,減少記憶體的消耗
     
String str1 = "love";
        for(int i=0;i<10;i++)
        {
            //系統會在這裡建立StringBuilder,然後進行append,這樣會增加記憶體消耗
            str1 += i;
        }
        //StringBuilder
        StringBuilder str2 = new StringBuilder("love2");
        for(int i=0;i<10;i++)
        {
            //這裡的StringBuilder是在外部建立的,就一個,所以不會增加記憶體消耗
            str2.append(i);
        }