StringBuilder和StringBuffer類似,前者是線程不安全的,后者是線程安全的。 但StringBuilder比StringBuffer速度快StringBuilder:String A = ""; long B = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { A += i+","; } System.out.PRintln(A); System.out.println("用時:"+(System.currentTimeMillis()-i)); 最后結果StringBuilder比StringBuffer塊一些。StringBuffer:StringBuffer A = new StringBuffer(); long B = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { A append(i).append(","); } System.out.println(A); System.out.println("用時:"+(System.currentTimeMillis()-B)); StringBuffer在內部會維護一個比較大的char數組,數組會有一個初始容量 容量默認是16 當StringBuffer調用append方法追加內容的時候, 會在數組里檢查有沒有空的位置,如果有,則直接賦值 沒有呢,(char數組滿了)。擴容 在原來的基礎上乘以2再加2.如果還不夠,把容量等于需要的容量值