首頁  >  文章  >  Java  >  java中String和StringBuffer的聯繫與區別

java中String和StringBuffer的聯繫與區別

Y2J
Y2J原創
2017-04-27 13:14:001614瀏覽

這篇文章主要介紹了java中String和StringBuffer的區別實例詳解的相關資料,一個小的例子,來測試String和StringBuffer在時間和空間使用上的差別,需要的朋友可以參考下

java中String與StringBuffer的區別實例詳解

String:

           是物件不是原始型別.
           為不可變物件,一旦建立,就不能修改它的值.
           儲存已儲存的)物件為新的物件
           String 是final類別,即無法繼承. 

StringBuffer:

  ,在對他進行修改的時候不會像String那樣重新建立物件
           它只能透過建構子建立,
         就會分配記憶體空間,並初始保存一個null.透過它的append方法向其賦值.
          sb.append("hello"); 


##字串連線作業中StringBuffer的效率要明顯比String高:


String物件是不可變物件,每次操作Sting 都會重新建立新的物件來保存新的值.
StringBuffer物件實例化後,只對這一個物件操作。 

我在這裡寫了一個小的例子,來測試String和StringBuffer在時間和空間使用上的差異。

public class Test {  
  public static void main(String args[]) {  
    String str = "abc";  
    StringBuffer sb = new StringBuffer("abc");  
    Runtime runtime = Runtime.getRuntime();  
    long start = System.currentTimeMillis();  
    long startFreememory = runtime.freeMemory();  
    for (int i = 0; i < 10000; i++) {  
      str += i;  
      //测试StringBuffer时候把注释打开  
      //sb.append(i);  
    }  
    long endFreememory = runtime.freeMemory();  
    long end = System.currentTimeMillis();  
    System.out.println("操作耗时:" + (end - start) + "ms," + "内存消耗:"  
        + (startFreememory - endFreememory)/1024 + "KB");  
  }  
}
 測試結果:


使用String做10000次向一字串後加入字串
操作耗時:1872ms,記憶體消耗:1301KB 


使用StringBuffer做10000次向一字串後加入字串

操作耗時:15ms,記憶體消耗:162KB###

以上是java中String和StringBuffer的聯繫與區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn