Was ist der Unterschied zwischen int[] b; und b = new int[5];?

Mit der Anweisung int[] b; deklariert man ein Array. Das heißt, es wird eine Referenz für ein int-Array festgelegt. Da es noch kein Array gibt, das dieser Referenz zugewiesen wurde, ist der Wert dieser Referenz null.

Damit auf Elemente des Arrays zugegriffen werden kann, ist bezüglich der Anzahl der Elemente eine Vereinbarung zu treffen. Dazu wird mit new ein Array mit festgelegter Größe erzeugt. Die Elemente des Arrays haben default-Werte des Datentyps. Mehr dazu findest du in der Tabelle “Default-Werte von Instanz- und Klassenvariablen” in unserer FAQ.

int b[];
b = new int[5];

Mit der Anweisung b = new int[5]; wird das Array b initialisiert und Speicher für 5 Array-Elemente reserviert.


Anmerkung: Ein Array kann auch durch Aufzählen der Werte initialisiert werden. Diese Art der Initialisierung muss unmittelbar bei der Deklaration erfolgen:

int b[] = { 2, 4, 1, 5, 3 };