首頁 >Java >java教程 >Java的陣列是按值傳遞還是按引用傳遞?

Java的陣列是按值傳遞還是按引用傳遞?

Patricia Arquette
Patricia Arquette原創
2024-12-17 05:44:25960瀏覽

Is Java's Array Passing by Value or by Reference?

理解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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn