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

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

Susan Sarandon
Freigeben: 2024-12-29 08:03:14
Original
548 Leute haben es durchsucht

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)
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage