值傳遞和引用傳遞

2021-08-18 06:54:44 字數 756 閱讀 3814

1.什麼是值傳遞和引用傳遞

值傳遞:方法呼叫時,實際引數的值copy乙份傳遞給形式引數,此時,有兩個相等的數值分別儲存於不同的記憶體位址上,因此,後面的方法中都是對形參位址上的數值進行修改。

引用傳遞:方法呼叫時,實際引數的值(也就是位址)copy乙份傳遞給形式引數,此時,形參和實參的引用都指向同一儲存空間,因此,實參會隨著形參的改變而改變。

2.基本型別和引用型別的區別

3.總結

1、基本型別物件值傳遞,引用型別物件引用傳遞。

2、無論是基本型別物件還是引用型別物件,作為引數傳入函式中本質都是值傳遞。

3、判讀乙個物件的值是否傳送改變,關鍵是看其本身的值,如果是引用物件則要看其值引向的堆空間的值。

4、string, integer, double等immutable的型別特殊處理,可以理解為傳值,最後的操作不會修改實參物件。

#參考文章

值傳遞和引用傳遞

幾乎每種語言都有值傳遞和引用傳遞.下面是我的一些曲解,只講現象,不涉及到任何的原理,主要是鬧著玩的.a 新交了個女朋友b.有一天他女朋友b看見a在吃冰激凌,b想吃,但是a是個 座有點小潔癖,不想讓b吃,於是給b買了個新的冰激凌說你吃這個吧,別碰我嘴裡這個.這就是值傳遞.a和b的值沒有任何關係,他們一...

值傳遞和引用傳遞

定義 通過建立乙個實際引數的副本,再傳遞給方法的形式引數,在main自身並不會被使用。這個在我們第一次使用編寫交換數的方法時,基本都會遇見,當我呼叫a,b兩個變數時,通過交換方法交換他們的位置,但是沒用,這就是值傳遞,乙個坑 public class switchnum switchnum a,b ...

引用傳遞和值傳遞

1.主方法中的值傳遞 首先我們先看以下 public static void main string args 執行結果為 在這裡我們發現進行int型別的傳遞時,b的值進行了改變,a的值並沒有一起發生變化,即可以說傳遞之後a和b就沒有關係了。事實上我們去嘗試其他基本型別 char byte int ...