162 votes

Quelle est l'initialisation par défaut d'un tableau en Java?

Donc, je suis de la déclaration et l'initialisation d'un tableau int:

static final int UN = 0;
int[] arr = new int[size];
for (int i = 0; i < size; i++) {
    arr[i] = UN;
}

Dire que je faire à la place...

int[] arr = new int[5];
System.out.println(arr[0]);

... 0 sera imprimée à la norme. Aussi, si je fais ceci:

static final int UN = 0;
int[] arr = new int[5];
System.out.println(arr[0]==UN);

... true sera imprimée à la norme. Alors, comment est Java initialiser mon tableau par défaut? Est-il sûr de supposer que l'initialisation par défaut est le réglage de l'index de tableau pour 0 qui signifierait que je n'ai pas à parcourir le tableau et l'initialiser?

Merci.

313voto

Tout ce qui n’est pas explicitement défini sur quelque chose en Java est initialisé à une valeur nulle.

  • Pour les références (tout ce qui contient un objet), il s'agit de null .
  • Pour int / short / byte, il s'agit d'un 0.
  • Pour float / double c'est un 0.0
  • Pour les booléens, c'est un faux.

Lorsque vous créez un tableau de quelque chose, toutes les entrées sont également mises à zéro. Votre tableau contient donc cinq zéros juste après sa création par new .

66voto

Dave Costa Points 25282

A partir de la spécification du langage Java :

 * Each class variable, instance variable, or array component is initialized with a default value when it is created (§15.9, §15.10):
      o For type byte, the default value is zero, that is, the value of (byte)0.
      o For type short, the default value is zero, that is, the value of (short)0.
      o For type int, the default value is zero, that is, 0.
      o For type long, the default value is zero, that is, 0L.
      o For type float, the default value is positive zero, that is, 0.0f.
      o For type double, the default value is positive zero, that is, 0.0d.
      o For type char, the default value is the null character, that is, '\u0000'.
      o For type boolean, the default value is false.
      o For all reference types (§4.3), the default value is null.
 

23voto

Aniket Thakur Points 10135

JLS dit clairement

Un initialiseur de tableau crée un tableau et fournit des valeurs initiales pour l'ensemble de ses composants.

et c'est indépendamment de si le tableau est une variable d'instance ou d'une variable locale ou variable de classe.

Les valeurs par défaut pour les types primitifs : docs

Pour les objets de valeurs par défaut est null.

3voto

Abhishek Singh Points 5

En fonction de java,

Type de données valeurs par Défaut

octet 0

court - 0

int - 0

long - 0L

float 0.0 f

double - 0.0 d

char - '\u0000'

Chaîne de caractères (ou un objet) - null

boolean - faux

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X