Heim >Java >javaLernprogramm >Wird Javas Array als Wert oder als Referenz übergeben?

Wird Javas Array als Wert oder als Referenz übergeben?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-17 05:44:25967Durchsuche

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

Wert- und Referenzübergabe in Java verstehen: Eine Fallstudie von Arrays

In Java ist das Konzept der Übergabe als Wert oder als Referenz ein entscheidendes Thema. Verschiedene Datentypen verhalten sich bei diesem Vorgang unterschiedlich. Während Primitive als Wert übergeben werden, stellen Arrays, die nicht primitiv, aber keine Objekte sind, eine einzigartige Situation dar.

Werden Arrays als Wert oder als Referenz übergeben?

Im Wesentlichen wird in Java alles als Wert übergeben. Da Arrays Objekte sind, folgen sie diesem Konzept und der Verweis auf das Array wird als Wert übergeben. Ähnlich wie bei der Übergabe von Objektreferenzen ist die Array-Referenz eine Kopie.

Auswirkungen der Wertübergabe für Arrays

Diese Wertübergabe hat spezifische Auswirkungen:

  • Änderungen, die über die übergebene Referenz am Array-Inhalt vorgenommen werden, verändern das ursprüngliche Array.
  • Änderung der Referenz selbst (die Zuweisung zu einem neuen Array) hat keinen Einfluss auf die ursprüngliche Referenz in der ursprünglichen Methode.

Beispieldemonstration

Bedenken Sie den folgenden Java-Code:

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..
}

Dieser Code demonstriert das Werteübergabeverhalten von Arrays. Durch Ändern des Array-Inhalts mit „changeContent“ wird das ursprüngliche Array geändert. Durch die Zuweisung eines neuen Arrays in „changeRef“ wird die ursprüngliche Referenz jedoch nicht aktualisiert. Dadurch bleibt der arr[0]-Wert auch nach der Referenzänderung 10.

Das obige ist der detaillierte Inhalt vonWird Javas Array als Wert oder als Referenz übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn