-
方法傳入實參,是否會修改實參具體值?
網絡認知:如果是基本數據類型是傳值調用不會影響實參本身,其他對象即引用類型是傳引用調用,直接影響引用所指向的內存。
個人認知:永遠不會影響實參的值,因爲基本數據類型的值就是本身所代表的值,引用類型的值是指向對象的內存地址,如果你不修改引用指向,那麼你可以改變引用所指向的對象內部的數據。當你修改了引用指向後,那麼無論你如何操作都不會影響實參當前指向對象內部的數據。
示例:引用傳遞,雖然方法內重新指定了引用的指向,但是不會影響實參引用本身的指向,也就是引用的值不會變,你可以借他的手去修改對象,但是你沒法修改他本身。
public static void change(StringBuffer a){
//實參a的值永遠不變,這種方式沒有多大意義,且邏輯混淆
a = new StringBuffer("change");
a.append("change");
}
愛家人,愛生活,愛設計,愛編程,擁抱精彩人生!