Eine gute Antwort könnte sein:

class ArrayEg4
{
  public static void main ( String[] args )
  {
    int[] valA = { 12, 23, 45, 56 };

    int[] valB = new int[4]; 

    valB[ 0 ]  = valA[ 0 ] ;
    valB[ 1 ]  = valA[ 1 ] ;
    valB[ 2 ]  = valA[ 2 ] ;
    valB[ 3 ]  = valA[ 3 ] ;

   }
}

Werte in Slots kopieren

In diesem Beispiel wird das int in Slot 0 von valA in den Slot 0 von valB kopiert und so weiter. Dies ist genau wie eine Zuweisungsanweisung

spot = source

wo beide Variablen vom primitiven Typ int sind. Nachdem die vier Zuweisungsanweisungen in der Antwort ausgeführt wurden, enthält jedes der Arrays die gleichen Werte in derselben Reihenfolge:

Die folgende Anweisung macht nicht dasselbe:

valB = valA ;

Denken Sie daran, dass Arrays Objekt sind. Die oben stehende Anweisung kopiert lediglich die Objektreferenz in valA in die Objektreferenzvariable valB, das ergibt zwei Möglichkeiten auf ein einziges Arrayobjekt zu zugreifen:

Das Objekt, das valB vorher referenziert hat, ist jetzt verloren (es ist Garbage geworden).

FRAGE 12:

Angenommen, dass die Anweisung valB = valA ausgeführt wurde, die oben stehende Abbildung ergebend. Wass würde das folgende ausgeben?

valA[2] = 999;
System.out.println( valA[2] + "   " + valB[2] );