Heim >Java >javaLernprogramm >Java-Arrays: Wertübergabe oder Referenzübergabe?

Java-Arrays: Wertübergabe oder Referenzübergabe?

Susan Sarandon
Susan SarandonOriginal
2024-12-29 08:03:14576Durchsuche

Java Arrays: Pass by Value or Pass by Reference?

Java-Arrays: Wert- oder Referenzübergabe?

Arrays haben in Java einen Sonderstatus, da sie weder primitive Typen noch vollwertige Objekte sind. Diese einzigartige Natur wirft die Frage auf: Werden Java-Arrays als Wert oder als Referenz übergeben?

Alles in Java wird als Wert übergeben.Dazu gehören auch Arrays. Wenn Sie ein Array an eine Methode übergeben, wird tatsächlich die Referenz auf dieses Array übergeben, nicht das Array selbst.

Daher wirken sich alle über diese Referenz am Inhalt des Arrays vorgenommenen Änderungen auf das ursprüngliche Array aus . Das Ändern der Referenz so, dass sie auf ein neues Array zeigt, hat jedoch keine Auswirkungen auf die Referenz in der ursprünglichen Methode.

Bedenken Sie das folgende Java-Snippet:

public class ArrayPassingDemo {

    public static void changeContent(int[] arr) {
        arr[0] = 10; // Changes the content of the array in main()
    }

    public static void changeRef(int[] arr) {
        arr = new int[2]; // Does 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 (since the reference change isn't reflected)
    }
}

In diesem Beispiel:

  • changeContent ändert den Inhalt des Arrays, was sich in main() widerspiegelt.
  • changeRef versucht, die Array-Referenz zu ändern, schlägt jedoch fehl, da die ursprüngliche Referenz in main() unberührt bleibt.

Dieses Verhalten verdeutlicht, dass Arrays in Java als Wert übergeben werden, obwohl die Übergabeoperation ihre Referenz beinhaltet.

Das obige ist der detaillierte Inhalt vonJava-Arrays: Wertübergabe oder Referenzübergabe?. 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