Oui, il ne crée que des références, qui sont définies à leur valeur par défaut null. C'est pourquoi vous obtenez une NullPointerException Vous devez créer les objets séparément et attribuer la référence. Il y a 3 étapes pour créer des tableaux en Java : - la création d'un tableau.
Déclaration - Dans cette étape, nous spécifions le type de données et les dimensions du tableau que nous allons créer. Mais souvenez-vous, nous ne mentionnons pas encore les tailles des dimensions. Elles sont laissées vides.
Instanciation - Dans cette étape, nous créons le tableau, ou allouons de la mémoire pour le tableau, en utilisant le mot clé new. C'est à 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éclarer des tableaux en Java
Voici comment on déclare un tableau unidimensionnel en Java -.
int[] array;
int array[];
Oracle vous recommande d'utiliser l'ancienne syntaxe pour déclarer les 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 l'on "instancie", ou que l'on alloue de la mémoire pour un tableau -
int[] array = new int[5];
Lorsque la JVM rencontre le new
le mot-clé, il comprend qu'il doit allouer de la mémoire pour 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 à array qui est une "référence" de type int[]
Initialisation
Utilisation d'une boucle - L'utilisation d'une boucle for pour initialiser les éléments d'un tableau est la façon la plus courante de faire fonctionner le tableau. Il n'est pas nécessaire d'exécuter une boucle for si vous comptez attribuer la valeur par défaut elle-même, car la 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 la JVM peut voir que nous donnons 5 valeurs.
Donc, jusqu'à ce que nous instanciions les références restent nulles. J'espère que ma réponse vous a aidé ! :)
Source - Les tableaux en Java
18 votes
Je voulais juste dire que cette question était exceptionnellement utile ; merci de l'avoir posée.