原由:項目中一處方法的參數String須要在調用處使用,還須要在方法內使用,而且方法此時須要返回的值有多個且包括這個參數String(如今是使用封裝一個類,包含全部返回值的類)
在java中,依然是存在引用傳遞和值傳遞的:java
- 引用傳遞:參數進入方法後,方法在參數上作的修改,可使得變量原型同樣隨之變化,由於是參數拷貝了變量的地址引用,方法經過地址引用來修改
- 值傳遞:參數進入方法後,方法在參數上作的修改,不會使得原型改變,由於這裏的參數是原型的一個拷貝,這裏改變的是一個備份,而非數據自己
在java中,基本數據類型是值傳遞,而非基本類型是引用傳遞,可是,String由於是「不可變」的對象,致使了它的特殊性。
String對象在發生改變的時候,是產生一個新的對象,而後將指針指向新的對象。
原型和參數此時指向的是不一樣的對象,因此String不能經過參數引用傳遞來做值的改變
如如有錯,煩請指出