1. 程式人生 > >java中,方法參數是基本類型和引用類型的區別

java中,方法參數是基本類型和引用類型的區別

關系 傳遞 類型 參數 變量 找到 外部 內存地址 chan

方法參數是基本類型時,傳遞的是值。
方法參數是引用類型時,傳遞的是內存地址值

當參數是基本類型時,在調用方法時將值傳遞到方法中,運行方法,運行結束方法退出,對原本main中定義的變量沒有任何操作(方法中沒有return)。即:此時只跟棧有關系,方法執行完之後(方法中沒有return),會彈棧。

當參數是引用類型時,比如:定義數組時,在堆內存中存儲了數組的數據,返回這組數據的地址給了數組名,然後在調用方法時,傳遞的也是這個地址。在方法中,同樣也是根據這個地址找到數組的信息,然後改變了這個數據的,所以之後main方法輸出時,輸出的是改變了之後的數組。即:此時跟棧和堆有關系,棧可以彈棧,堆內存不能彈出。

也就是說 ,當形式參數是基本類型時,方法傳的只是值,實際上main 裏的實際參數和外部方法裏的形式參數是不同的兩個東西,如果方法不返回值,change裏不管怎麽改變,與main無關。
而當形式參數是引用類型時,比如:形式參數是數組時,兩個方法通過同一個地址,使用的是同一個堆內存裏的數組,是同一個東西,所以外部方法裏面改變了這個數組之後,main再調用也是改變之後的數組。

java中,方法參數是基本類型和引用類型的區別