Les types primitifs en Java
Les types primitifs en Java
-
Objectifs
- Connaitre les types primitifs en Java
-
Introduction
- Java est un langage orienté objet, c’est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c’est-à-dire des instances de classes.
- Toutefois ces objets contiennent des données possédant un type (et une représentation). Ces données sont un ensemble d’éléments stockés en mémoire et baptisés pour l’occasion primitives.
- En Java les types de données sont divisés en deux groupes:
- Types de données primitifs – comprend octet, court, int, long, float, double, boolean et char
- Types de données non primitifs – tels que String, Arrays et Classes (vous en apprendrez plus à ce sujet dans un chapitre ultérieur)
-
Les données de type primitif
- Le langage de programmation Java prend en charge huit types de données primitifs. Un type primitif est prédéfini par le langage et est nommé par un mot-clé réservé.
- Un primitif est une donnée élémentaire de base telles que les nombres entiers, les nombres réels, les caractères et les booléens.
- Java définit 8 types de primitifs:
- 4 types de nombres entiers
- 2 types de nombres réels
- 1 type pour les booléens
- 1 type pour les caractères
-
Les quatre types entiers en Java
- Il existe quatre types entiers en Java, à l’instar des langages C et C++ dont Java s’inspire. C’est quatre types entiers sont : byte, short, int et long. La différence entre ces quatre types de données réside dans le nombre d’octets utilisé par la variable comme le montre le tableau ci-dessous.
-
Les deux types de nombres réels en Java
- Un nombre à virgule flottante est un nombre à virgule, il peut toutefois être représenté de différentes façons :
- un entier décimal: 895
- un nombre comportant un point (et non une virgule): 845.32
- une fraction: 27/11
- un nombre exponentiel, c’est-à-dire un nombre (éventuellement à virgule) suivi de la lettre e (ou E), puis d’un entier correspondant à la puissance de 10 (signé ou non, c’est-à-dire précédé d’un + ou d’un -)
- 2.75e-2
- 35.8E+10
- .25e-2
- Les nombres de type float sont codés sur 32 bits dont :
- Les nombres de type double sont codés sur 64 bits dont :
-
Le type caractère (char) en Java
- Les variables de type char sont codées sur 2 octets non signés car la représentation interne des caractères est l’UTF-16.
- Par défaut, un attribut de type char vaut 0 (c’est-à-dire le caractère de terminaison).
- Pour représenter un littéral, on utilise l’apostrophe (simple quote) :char c = ‘a’;
-
Le type booléen en Java
- Le type de données « booléen » (Boolean) n’a que deux valeurs possibles : vrai et faux. Il est utilisé 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 précisément définie.
- La valeur par défaut est false
- Ce type de données est utilisé pour les indicateurs simples qui suivent les conditions vraies/fausses.
- On ne peut utiliser que des opérateurs booléens comme
==
,!=
et!
sur des variables de type booléen (pas d’opération arithmétique autorisée). -
Types de données non primitifs
- Les types de données non primitifs sont appelés types de référence car ils font référence à des objets.
- Les autres types de données sont des types par référence vers des objets ou des tableaux. En fait, ce sont de variables destinées à contenir des adresses d’objets ou de tableaux, ce que l’on exprime par : les données non primitives sont manipulées « par référence » alors que les données primitives sont manipulées par valeur.
- La principale différence entre les types de données primitifs et non primitifs est la suivante:
- Les types primitifs sont prédéfinis (déjà définis) en Java. Les types non primitifs sont créés par le programmeur et non définis par Java (sauf pour String).
- Les types non primitifs peuvent être utilisés pour appeler des méthodes afin d’effectuer certaines opérations, contrairement aux types primitifs.
- Un type primitif a toujours une valeur, tandis que les types non primitifs peuvent être null.
- Un type primitif commence par une lettre minuscule, tandis que les types non primitifs commencent par une lettre majuscule.
- La taille d’un type primitif dépend du type de données, tandis que les types non primitifs ont tous la même taille.
Les valeurs primitives ne partagent pas de données avec d’autres valeurs primitives. Les huit types de données primitifs pris en charge par le langage de programmation Java sont données dans le tableau suivant:
byte | short | int | long | |
---|---|---|---|---|
Taille (bits) | 8 | 16 | 32 | 64 |
Etendue des valeurs | -128 .. 127 | -32768 .. 32767 | -231 .. 231-1 | -263 .. 263-1 |
-
23 bits pour la mantisse
8 bits pour l’exposant
1 bit pour le signe
-
52 bits pour la mantisse
11 bits pour l’exposant
1 bit pour le signe