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
- 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 représente un bit d’information
- Il n’y a que deux valeurs possibles: true et false
- 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.
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