理解Java 中的值和引用傳遞:數組的案例研究
在Java 中,按值傳遞或按引用傳遞的概念是一個至關重要的話題。在此過程中,不同的資料類型表現不同。雖然基元是按值傳遞的,但數組是非基元但不是對象,呈現出一種獨特的情況。
陣列是按值傳遞還是按引用傳遞?
本質上,Java 中的所有內容都是按值傳遞的。數組作為對象,遵循這個概念,並且對數組的引用是按值傳遞的。與傳遞物件參考類似,數組引用是一個副本。
數組值傳遞的含義
此值傳遞具有特定含義:
範例示範
考慮以下 Java 程式碼:
public static void changeContent(int[] arr) { // If we change the contnet of arr. arr[0] = 10; // Will change the content of array in main() } public static void changeRef(int[] arr) { // If we change the reference arr = new int[2]; // Will not change the array in main() arr[0] = 15; } public static void main(String[] args) { int[] arr = new int[2]; arr[0] = 4; arr[1] = 5; changeContent(arr); System.out.println(arr[0]); // Will print 10.. changeRef(arr); System.out.println(arr[0]); // Will still print 10.. // Change the reference doesn't reflect change here.. }
此程式碼示範了陣列的值傳遞行為。使用changeContent變更陣列內容會修改原始陣列。但是,在changeRef中指派新陣列不會更新原始參考。因此,即使參考變更後,arr[0] 值仍保持為 10。
以上是Java的陣列是按值傳遞還是按引用傳遞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!