Wird die folgende Anweisung das Array größer machen?

liste = new String[5];

Eine gute Antwort wäre:

Nein. Die Anweisung erzeugt ein völlig neues Arrayobjekt (mit Platz für 5 Slots). Die gesamte Information in dem alten Arrayobjekt ist jetzt Datenausschuss.

Die alte Information ist verloren

In dem Beispiel wird die Referenzvariable liste auf das neu konstruierte Objekt gesetzt. Die Information in dem alten Objekt wird nicht automatisch transferiert. Um die alte Information zu behalten, müsste das Programm sie in das neue Array kopieren, nachdem es konstruiert wurde. Das ist nicht allzu schwierig, aber lästig.

In der Abbildung repräsentieren die schrägen Linien null, den Wert, den eine Referenz hat, wenn sie auf kein Objekt verweist.

FRAGE 3:

Was passiert, wenn Information einem Arrayslot hinzugefügt wird, der nicht existiert?

String[] liste = new String[3];
liste[0] = "Ameise" ;
liste[1] = "Maus" ;
liste[2] = "Katze" ;

liste[3] = "Hund" ;
Inhaltsverzeichnis