/ / Warum verhalten sich Java-Arrays so? - Java, Arrays

Warum verhalten sich Java-Arrays so? - Java, Arrays

Ich bin ziemlich neu in Java und verstehe nicht, wie das funktioniert.

int[] x = {5, 6, 7, 8, 9};
int[] y = x;
y[2] = 10;

In dem Code warum ist das so? x[2] ist nun gleich 10 y[2] ist gleich 10?

Ich verstehe nicht, warum es nicht nur geht y[2] = 10 und geh x[2] = 6.

Liegt das daran, dass das Y-Array eine Referenz auf das X-Array ist?

Antworten:

4 für die Antwort № 1

Liegt das daran, dass das Y-Array eine Referenz auf das X-Array ist?

Ja. Die Linie int[] y = x; sagt genau das.

Wenn Sie eine Kopie möchten, können Sie tun

int[] y = Arrays.copyOf(x, x.length);

0 für die Antwort № 2

in Java-Arrays sind Objekte, auch wenn die Halte-Primitive ... also wenn Sie es tun etwas wie:

int[] x = { 5, 6, 7, 8, 9 };
int[] y = x;
y[2] = 10;
System.out.println(x[2] + "  " + y[2]);

Sie ordnen x und y die gleiche Referenz zu ... jede Änderung in x wird in y wirksam und umgekehrt ... beide "zeigen" auf dasselbe Objekt ...

Werfen Sie einen Blick auf das Bild unten für eine anschauliche Erklärung

Bildbeschreibung hier eingeben