java中String和StringBuffer的傳參與區別
阿新 • • 發佈:2019-01-06
1.String和StringBuffer的傳遞
在一個論壇裡看到說:java裡只有值傳遞
可以這樣理解吧:在java中的引用傳遞是通過物件實現的。(一個物件的值其實是這個物件的地址)
string:
記憶體圖
StringBuffer:
//輸出:a=AB,b=B
記憶體圖
2.StringBuffer
StringBuffer和String都是處理字串的,StringBuffer中的方法append(),用於連線子字串相當於String中的“ + ”。
3.String和StringBuffer區別
之說append()這一個方法:在原有字串的末尾連線其他字元。
String:
為不可變物件,一旦被建立,就不能修改它的值.
對於已經存在的String物件的修改都是重新建立一個新的物件,然後把新的值儲存進去.
String 是final類,即不能被繼承.
StringBuffer:
是一個可變物件,當對他進行修改的時候不會像String那樣重新建立物件
它只能通過建構函式來建立,
StringBuffer sb = new StringBuffer();
note:不能通過付值符號對他進行付值.
sb = "welcome to here!";//error
物件被建立以後,在記憶體中就會分配記憶體空間,並初始儲存一個null.向StringBuffer
中付值的時候可以通過它的append方法.
sb.append("hello");
字串連線操作中StringBuffer的效率要比String高的多
String str = new String("welcome to ");
str += "here";
謝謝閱讀!