Skip to content

Type de données en Java (type primitifs)

Le langage de programmation Java est typé statiquement, ce qui signifie que toutes les variables doivent d'abord être déclarées avant de pouvoir être utilisées.

Cela implique d'indiquer le type et le nom de la variable, comme vous l'avez déjà vu :

int unSuperNombre = 19;

Cela indique à votre programme qu'un champ nommé "unSuperNombre" existe, contient des données numériques entière et a une valeur initiale de "19".

Le type de données d'une variable détermine les valeurs qu'elle peut contenir, ainsi que les opérations qui peuvent être effectuées dessus.

En plus de int, le langage de programmation Java prend en charge sept autres types de données primitifs :

  • byte : Le type byte est un entier complément à deux signés sur 8 bits. Il a une valeur minimale de -128 et une valeur maximale de 127 (inclus). Le byte peut être utile pour économiser de la mémoire dans de grands tableaux, où les économies de mémoire sont réellement importantes.

    Ils peuvent également être utilisés à la place de int où leurs limites aident à clarifier votre code; le fait que la plage d'une variable soit limitée peut servir de forme de documentation.

 

  • short : Ce type donné est un entier 16 bits signé complément à deux. Il a une valeur minimale de -32 768 et une valeur maximale de 32 767 (inclus).

    Comme pour byte, les mêmes directives s'appliquent : vous pouvez utiliser un short pour économiser de la mémoire dans de grandes tableaux et dans les situations où les économies de mémoire sont réellement importantes.

 

  • int : Le type int est un entier 32 bits signé complément à deux, qui a une valeur minimale de -231 et une valeur maximale de 231-1. Vous pouvez utiliser le type int de données pour représenter un entier 32 bits non signé, qui a une valeur minimale de 0 et une valeur maximale de 2 32-1.

    Utilisez la classe Integer pour utiliser int le type de données comme un entier non signé.

 

  • long : Le type long est un entier de complément à deux de 64 bits. Le long signé a une valeur minimale de -263 et une valeur maximale de 263-1. Vous pouvez utiliser le type long pour représenter une longueur non signée de 64 bits, qui a une valeur minimale de 0 et une valeur maximale de 264-1.

    Utilisez ce type de données lorsque vous avez besoin d'une plage de valeurs plus large que celles fournies par int.

    La classe Long contient également des méthodes telles que compareUnsigned, divideUnsigned, etc. pour prendre en charge les opérations arithmétiques pour un long non signé.

 

  • float : Le type float est une virgule flottante IEEE 754 32 bits à précision simple. Sa plage de valeurs dépasse le cadre de cette discussion, mais est spécifiée ici.

    Comme pour les recommandations pour byte et short, utilisez un float(au lieu de double) si vous avez besoin d'économiser de la mémoire dans de grands tableaux de nombres à virgule flottante.

    Ce type de données ne doit jamais être utilisé pour des valeurs précises, telles que les devises ou le temps. Pour cela, vous devrez utiliser la classe java.math.BigDecimal à la place ou une autre équivalence.

    Example :

    1 % 3 == 0.33

    0.33 x 3 = 0.99_

 

  • double : Le type double est une virgule flottante IEEE 754 64 bits double précision. Sa plage de valeurs dépasse le cadre de cette discussion, mais est spécifiée dans la section Types, formats et valeurs à virgule flottante de la spécification du langage Java (voir float ci-dessus). Pour les valeurs décimales, ce type de données est généralement le choix par défaut. Comme mentionné ci-dessus, ce type de données ne doit jamais être utilisé pour des valeurs précises, telles que les devises ou le temps.

 

La norme IEEE 754 comprend non seulement des nombres positifs et négatifs constitués d'un signe et d'une magnitude, mais également des zéros positifs et négatifs, des infinis positifs et négatifs et des valeurs spéciales Not-a-Number (NaN). Une valeur NaN est utilisée pour représenter le résultat de certaines opérations non valides telles que la division de zéro par zéro. Les constantes NaN de type float et double sont prédéfinies comme Float.NaN et Double.NaN.

 

  • boolean : Le type boolean n'a que deux valeurs possibles : true ou false. Utilisez ce type de données pour les indicateurs simples qui suivent les conditions vrai/faux. Ce type de données représente un bit d'information, mais sa "taille" n'est pas définie avec précision.

 

  • char : Le char est un seul caractère Unicode 16 bits. Il a une valeur minimale de '\u0000'(ou 0) et une valeur maximale de '\uffff'(ou 65 535 inclus).

 

Les valeurs par défaut

Il n'est pas toujours nécessaire d'attribuer une valeur lorsqu'un champ est déclaré. Les champs déclarés mais non initialisés seront définis sur une valeur par défaut par le compilateur.

De manière générale, cette valeur par défaut sera zéro ou null, selon le type de données.

S'appuyer sur de telles valeurs par défaut, cependant, est généralement considéré comme un mauvais style de programmation.

Le tableau suivant résume les valeurs par défaut pour les types de données ci-dessus.

Type de données Valeur par défaut
byte 0
short 0
int 0
long 0
float 0
double 0
char 0
boolean false
Object null

 

Littéraux

Littéraux

Vous avez peut-être remarqué que le mot-clé new n'est pas utilisé lors de l'initialisation d'une variable de type primitif.

Les types primitifs sont des types de données spéciaux intégrés au langage ; ce ne sont pas des objets créés à partir d'une classe.

Un littéral est la représentation dans le code source d'une valeur fixe ; les littéraux sont représentés directement dans votre code sans nécessiter de calcul.

 

Littéraux entiers

Un entier littéral est de type long s'il se termine par la lettre L ou l; sinon il est de type int. Il est recommandé d'utiliser la lettre majuscule L car la lettre minuscule l est difficile à distinguer du chiffre 1.

Les valeurs des types intégraux byte, short, int et long peuvent être créées à partir de littéraux int. Les valeurs de type long qui dépassent la plage de int peuvent être créées à partir de littéraux long.

Les littéraux entiers peuvent être exprimés par ces systèmes de nombres :

  • Décimal : Base 10, dont les chiffres sont constitués des nombres 0 à 9; c'est le système de numérotation que vous utilisez tous les jours
  • Hexadécimal : Base 16, dont les chiffres sont composés des chiffres de 0 à 9 et des lettres A à F
  • Binaire : Base 2, dont les chiffres sont constitués des nombres 0 et 1

Pour la programmation à usage général, le système décimal sera probablement le seul système numérique que vous utiliserez. Toutefois, si vous devez utiliser un autre système de numérotation, l'exemple suivant montre la syntaxe correcte.

Le préfixe 0x indique hexadécimal et 0b indique binaire :

// Le nombre 26, en décimal
int decVal = 26 ;
// Le nombre 26, en hexadécimal
int hexVal = 0x1a ;
// Le nombre 26, en binaire
int binVal = 0b11010 ;

 

Littéraux à virgule flottante

Un littéral à virgule flottante est de type float s'il se termine par la lettre F ou f; sinon son type est double et il peut éventuellement se terminer par la lettre D ou d.

Les types à virgule flottante (float et double) peuvent également être exprimés en utilisant E ou e (pour la notation scientifique), F ou f (littéral flottant 32 bits) et D ou d (littéral flottant 64 bits; c'est la valeur par défaut et par convention est omis).

double d1 = 123,4 ;
// même valeur que d1, mais en notation scientifique
double d2 = 1,234e2 ;
flottant f1 = 123,4f ;

 

Littéraux de caractère et de chaîne de caractères

TODO