Si les éléments individuels d'un tableau int ne sont pas initialisés, qu'est-ce qui y est stocké par défaut? J'ai apparemment trouvé qu'il y a quelque chose comme un tableau vide ou un tableau nul. Quelle est la différence et laquelle s'applique à ma première question?
Techniquement, il n’existe pas de tableau null; mais comme les tableaux sont des objets, les types de tableau sont des types de référence (c'est-à-dire que les variables de tableau ne contiennent que references aux tableaux), ce qui signifie qu'une variable de tableau peut être null
plutôt que de pointer vers un tableau:
int[] notAnArray = null;
Un tableau empty est un tableau de longueur zéro; il n'y a pas d'éléments:
int[] emptyArray = new int[0];
(et never peut avoir des éléments, car la longueur d'un tableau ne change jamais après sa création).
Lorsque vous créez un tableau non -empty sans spécifier de valeur pour ses éléments, leur valeur par défaut est égale à zéro: 0
pour un tableau entier, null
pour un tableau de type objet, etc. donc ça:
int[] arrayOfThreeZeroes = new int[3];
est le même que celui-ci:
int[] arrayOfThreeZeroes = { 0, 0, 0 };
(bien que ces valeurs puissent être réaffectées ultérieurement; la longueur du tableau ne peut pas changer, mais ses éléments peuvent changer).
Par défaut, Java a initialisé le tableau en fonction du type déclaré. C'est int alors il est initialisé à 0. S'il est de type object comme array of object alors il est initialisé à null.
Si les éléments individuels d'un tableau int ne sont pas initialisés, qu'est-ce qui y est stocké par défaut?
0
tableau vide est un tableau avec 0 éléments
Je n'ai pas entendu parler du tableau null
, mais il s'agit probablement d'un tableau avec une référence d'élément non nulle qui est null
Un tableau a ses membres initialisés à leurs valeurs par défaut. Pour int
, la valeur par défaut est 0. Pour une Object
, c'est null
. Un tableau null
est un null
Array Reference (car les tableaux sont des types de référence en Java).
JLS-4.12.5 Valeurs initiales des variables dit en partie
Pour le type int, la valeur par défaut est zéro, c'est-à-dire 0.
et
Pour tous les types de référence (§4.3), la valeur par défaut est null.