類和物件 - 方法的呼叫
這個方法呼叫 列印的結果是 1 跟 2 :基本資料型別問題
解:change方法呼叫的時候 傳進去的引數屬於基本資料型別。 change方法在壓站執行的時候 只是重新賦值了 a 跟 b ;main方法執行完change的方法之後 change方法就沒有用了 就出站了 不影響原本定義的 a 跟 b
這個方法 執行結果 是 3 跟 100 :引用資料型別問題
解: 方法首先從main方法進入 第一步 建立的int靜態型陣列, 此時JVM中的已經存在了陣列的記憶體地址,因為是靜態型的所以記憶體裡面已經賦好了值,列印2索引-就會打出結果 3,此時又執行方法呼叫,將剛才定義的arr陣列傳入進去,注意:這時候傳入的是 記憶體地址,並非資料! change方法開始執行 將arr陣列中的2索引重新賦值。因為change中定義的陣列引數跟main方法中的陣列 指向的是同一個記憶體地址,所以change方法重新賦值的話,更改的實際上是記憶體中2索引的內容 。此時change方法出站,可是arr陣列中的記憶體地址已經被改變,在列印的話 2索引就會打印出100
繼剛才的知識點衍生的記憶體圖 如下:
引用資料型別 陣列 的記憶體圖
基本資料型別 int 型 記憶體圖:
方法呼叫的流程:
方法的記憶體圖: