Eine gute Antwort wäre:

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

    int[] dataB = new int[4]; 

    dataB[ 0 ]  = dataA[ 0 ] ;
    dataB[ 1 ]  = dataA[ 1 ] ;
    dataB[ 2 ]  = dataA[ 2 ] ;
    dataB[ 3 ]  = dataA[ 3 ] ;

   }
}

Werte in Slots kopieren

In diesem Beispiel wird das int in Slot 0 von dataA in den Slot 0 von dataB kopiert und so weiter. Das ist genau das gleiche wie die Zuweisungsanweisung

wert = neuerWert

bei der beide Variablen vom primitiven Typ int sind. Nachdem die vier Zuweisungsanweisungen (siehe Antwort) ausgeführt wurden, enthalten beide Arrays die gleichen Werte in der gleichen Reihenfolge:

Die folgende Anweisung macht nicht dasselbe:

dataB = dataA ;

Denken Sie daran, dass Arrays Objekte sind. Die obenstehende Anweisung kopiert lediglich die Objektreferenz in dataA in die Objektreferenzvariable dataB, damit gibt es zwei Möglichkeiten auf ein einziges Arrayobjekt zu zugreifen:

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

FRAGE 12:

Angenommen, dass die Anweisung dataB = dataA ausgeführt wurde (siehe die obenstehende Abbildung). Was würde das Folgende ausgeben?

dataA[2] = 999;
System.out.println( dataA[2] + "   " + dataB[2] );
Inhaltsverzeichnis