這篇文章主要介紹了java中String和StringBuffer的區別實例詳解的相關資料,一個小的例子,來測試String和StringBuffer在時間和空間使用上的差別,需要的朋友可以參考下
java中String與StringBuffer的區別實例詳解
String:
是物件不是原始型別.
為不可變物件,一旦建立,就不能修改它的值.
儲存已儲存的)物件為新的物件
String 是final類別,即無法繼承.
StringBuffer:
,在對他進行修改的時候不會像String那樣重新建立物件
它只能透過建構子建立,
就會分配記憶體空間,並初始保存一個null.透過它的append方法向其賦值.
sb.append("hello");
##字串連線作業中StringBuffer的效率要明顯比String高:
String物件是不可變物件,每次操作Sting 都會重新建立新的物件來保存新的值.
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次向一字串後加入字串
以上是java中String和StringBuffer的聯繫與區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!