Sì, crea solo riferimenti, che sono impostati sul valore predefinito null. Ecco perché ottieni una NullPointerException Devi creare oggetti separatamente e assegnare il riferimento. Esistono 3 passaggi per creare array in Java:
Dichiarazione - In questo passaggio, specifichiamo il tipo di dati e le dimensioni dell'array che stiamo per creare. Ma ricorda, non menzioniamo ancora le dimensioni delle dimensioni. Sono lasciati vuoti.
Istantanea : in questo passaggio, creiamo l'array o allociamo la memoria per l'array, utilizzando la nuova parola chiave. È in questo passaggio che citiamo le dimensioni delle dimensioni dell'array.
Inizializzazione : l'array viene sempre inizializzato sul valore predefinito del tipo di dati. Ma possiamo fare le nostre inizializzazioni.
Dichiarare le matrici in Java
Ecco come dichiariamo un array monodimensionale in Java -
int[] array;
int array[];
Oracle consiglia di utilizzare la sintassi precedente per dichiarare le matrici. Ecco alcuni altri esempi di dichiarazioni legali -
// One Dimensional Arrays
int[] intArray; // Good
double[] doubleArray;
// One Dimensional Arrays
byte byteArray[]; // Ugly!
long longArray[];
// Two Dimensional Arrays
int[][] int2DArray; // Good
double[][] double2DArray;
// Two Dimensional Arrays
byte[] byte2DArray[]; // Ugly
long[] long2DArray[];
E questi sono alcuni esempi di dichiarazioni illegali -
int[5] intArray; // Don't mention size!
double{} doubleArray; // Square Brackets please!
la creazione di istanze
Questo è il modo in cui "istanziamo" o allochiamo memoria per un array -
int[] array = new int[5];
Quando JVM incontra la new
parola chiave, capisce che deve allocare memoria per qualcosa. E specificando int[5]
, intendiamo che vogliamo un array di int
s, di dimensione 5. Quindi, la JVM crea la memoria e assegna il riferimento della memoria appena allocata all'array che un "riferimento" di tipoint[]
Inizializzazione
Uso di un ciclo : l'utilizzo di un ciclo for per inizializzare gli elementi di un array è il modo più comune per avviare l'array. Non è necessario eseguire un ciclo for se si intende assegnare il valore predefinito stesso, poiché JVM lo fa per te.
Tutto in uno..! - Possiamo dichiarare, istanziare e inizializzare il nostro array in una volta sola. Ecco la sintassi -
int[] arr = {1, 2, 3, 4, 5};
Qui, non menzioniamo le dimensioni, perché JVM può vedere che stiamo dando 5 valori.
Quindi, fino a quando non creeremo un'istanza, i riferimenti rimangono nulli. Spero che la mia risposta ti abbia aiutato ..! :)