Quelle est la différence entre une valeur null tableau et un tableau vide?
Si les éléments individuels d'un tableau int ne sont pas initialisés, ce qui est stocké par défaut? J'ai apparemment trouvé qu'il y est quelque chose comme un tableau vide ou null tableau. Quelle est la différence, et qui s'applique à ma première question?
Vous pouvez avoir un zéro-longueur du tableau -- contient pas d'éléments. Vous pouvez avoir une valeur nulle de la matrice de référence -- la référence est nulle, ce qui signifie qu'aucun tableau n'existe réellement. Vous pouvez avoir un tableau avec des éléments qui sont tous mis à null -- c'est la valeur par défaut pour un tableau de références lorsqu'il est initialement créé.
OriginalL'auteur | 2014-12-15
Vous devez vous connecter pour publier un commentaire.
Techniquement parlant, il n'y a pas une telle chose comme un null tableau; mais comme les tableaux sont des objets, les types tableau sont des types référence (qui est: variables de tableau il suffit de tenir références à des tableaux), ce qui signifie qu'une variable de tableau peut être
null
plutôt que de pointer vers un tableau:Un vide tableau est un tableau de longueur zéro; il n'a pas d'éléments:
(et peut jamais avoir des éléments, car un tableau de longueur ne change jamais après sa création).
Lorsque vous créez un non-tableau vide sans spécification de valeurs pour l'un de ses éléments, par défaut à zéro les valeurs de type —
0
pour un tableau d'entiers,null
pour un tableau d'un type d'objet, etc.; donc, c':est le même que celui de:
(bien que ces valeurs peuvent être ré-attribuée par la suite; la longueur du tableau ne peut pas changer, mais ses éléments peuvent changer).
OriginalL'auteur ruakh
En java par défaut initialise le tableau selon le type déclaré. Il est de type int, alors il est initialisé à 0. Si il est de type objet comme objet du tableau d', alors il est initialisé à null.
OriginalL'auteur Jigar
0
tableau vide est tableau avec des 0 éléments
Je n'ai pas entendu parler de
null
tableau, mais c'est probablement une matrice non nulle de référence de l'élément qui sontnull
OriginalL'auteur Jigar Joshi
Un tableau a ses membres initialisé à leurs valeurs par défaut. Pour
int
la valeur par défaut est 0. Pour unObject
c'estnull
. Unnull
tableau est unnull
de la Matrice de Référence (comme les tableaux sont des types référence en Java).JLS-4.12.5 Valeurs Initiales des Variables dit dans une partie
et
Correct. Et pour une
Integer[]
, mais undouble[]
est par défaut à 0 (soit un type primitif).L'indice 0 dans
int[] a = new int[0]
n'a rien à voir avec les valeurs par défauta = new int[1]; a une valeur par défaut au niveau de l'index
0
. En fait, un tableau de longueur supérieure à0
a une valeur par défaut au niveau de l'index0
.OriginalL'auteur Elliott Frisch