Oui, il crée uniquement des références, dont la valeur par défaut est null. C'est pourquoi vous obtenez une NullPointerException. Vous devez créer des objets séparément et attribuer la référence. Il y a 3 étapes pour créer des tableaux en Java -
Déclaration - Dans cette étape, nous spécifions le type de données et les dimensions du tableau que nous allons créer. Mais rappelez-vous, nous ne mentionnons pas encore les tailles des dimensions. Ils sont laissés vides.
Instanciation - Dans cette étape, nous créons le tableau ou allouons de la mémoire au tableau à l'aide du nouveau mot clé. C'est dans cette étape que nous mentionnons les tailles des dimensions du tableau.
Initialisation - Le tableau est toujours initialisé à la valeur par défaut du type de données. Mais nous pouvons faire nos propres initialisations.
Déclaration de tableaux en Java
Voilà comment nous déclarons un tableau unidimensionnel en Java -
int[] array;
int array[];
Oracle vous recommande d'utiliser l'ancienne syntaxe pour déclarer des tableaux. Voici quelques autres exemples de déclarations légales -
// 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[];
Et ce sont quelques exemples de déclarations illégales -
int[5] intArray; // Don't mention size!
double{} doubleArray; // Square Brackets please!
Instanciation
C'est ainsi que nous «instancions» ou allouons de la mémoire à un tableau -
int[] array = new int[5];
Lorsque la JVM rencontre le new
mot - clé, elle comprend qu'elle doit allouer de la mémoire à quelque chose. Et en spécifiant int[5]
, nous voulons dire que nous voulons un tableau de int
s, de taille 5. Ainsi, la JVM crée la mémoire et assigne la référence de la mémoire nouvellement allouée au tableau qui est une "référence" de typeint[]
Initialisation
Utilisation d'une boucle - L'utilisation d'une boucle for pour initialiser les éléments d'un tableau est le moyen le plus courant de démarrer le tableau. Il n'est pas nécessaire d'exécuter une boucle for si vous allez attribuer la valeur par défaut elle-même, car JVM le fait pour vous.
Tout en un..! - Nous pouvons déclarer, instancier et initialiser notre tableau en une seule fois. Voici la syntaxe -
int[] arr = {1, 2, 3, 4, 5};
Ici, nous ne mentionnons pas la taille, car JVM peut voir que nous donnons 5 valeurs.
Donc, jusqu'à ce que nous instancions les références restent nulles. J'espère que ma réponse vous a aidé..! :)