java Stringbuilder和Stringbuffer

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.如果還不夠,把容量等於需要的容量值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章