1. 程式人生 > >java中String和StringBuffer的傳參與區別

java中String和StringBuffer的傳參與區別

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";

謝謝閱讀!