廢話不多說,上**。
**很簡單,圖一中呼叫靜態方法intvalues(int t),毫無疑問是傳遞值,因為如果是引用傳遞,那麼二者列印的值是一致的。很明顯,a--之後,t的值沒有發生改變。
圖二也是一樣,清晰明了,把方法引數的值賦值給a,然後改變a的值,二者值列印均一致,那是因為t代表的是乙個堆記憶體的位址,基本資料型別用=、+=、-=、等等符號代表把右邊的值拷貝乙份給左邊,二者之間不會有聯絡,引用資料型別則大大不同,打個比方,它們相當於傳遞了一把鑰匙,大家都能開啟同一扇門,即大家都是對同乙個堆記憶體的資料進行操作,而第二次列印不同是因為a變數重新賦值的緣故,位址指向另一塊堆記憶體。
如有不當之處,還望大神多多指明,歡迎**,o(∩_∩)o哈哈~
Java是值傳遞還是引用傳遞
基本型別 如上圖所示,基本型別傳遞時,執行緒在棧上分配形式引數並拷貝實際引數的值。create with intellij idea author wangzhenpeng date 2018 4 8 time 上午9 48 e mail wangzhenpeng0924 163.com descr...
java中函式是值傳遞還是引用傳遞?
先看乙個例子 public class test1 static void changenum int a 結果 changenum a 100 main a 10 說明對於基本的數值型別其實傳遞的是乙份數值的拷貝,傳入函式之後跟原來的值就沒有關係了,在函式中改變這個數的值也不會影響到原來的值。再看...
java中函式是值傳遞還是引用傳遞?
先看乙個例子 public class test1 static void changenum int a 結果 changenum a 100 main a 10 說明對於基本的數值型別其實傳遞的是乙份數值的拷貝,傳入函式之後跟原來的值就沒有關係了,在函式中改變這個數的值也不會影響到原來的值。再看...