Dans la version 32bit, la plage représentable doit être calculée en pensant à un bit de signe, une mantisse à 23 bits et un exposant à 8 bits avec des valeurs comprises entre -126 et 127.
De plus, la norme prévoit la représentation de deux valeurs pour zéro (de droite et de gauche), deux pour l'infini (positif et négatif) et des valeurs NaN (not a number) à utiliser, par exemple, comme résultats d'opérations impossibles (par exemple, des divisions par zéro).
| Type | Quantité de mémoire | Information représentée | Valeur par défaut | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| byte | 8 bits | Variable avec signe (avec représentation « two’s complement », complément à deux) et représente des valeurs dans une plage [-128 et 127] (extrêmes inclus) | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| short | 16 bits | Nombres entiers (avec signe) dans une plage [-32 768, 32 767] | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| int | 32 bits | Nombres entiers (par défaut avec signe, signed) dans une plage [-231, 231-1]. Avec Java 8, il a été introduit la possibilité d'utiliser les int pour représenter des quantités unsigned qui peuvent avoir une plage [0, 232-1] (grâce à des méthodes statiques introduites dans les classes Integer et Long) | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| long | 64 bits | Nombres entiers (par défaut avec signe, signed) dans une plage [-263, 263-1]. Comme pour les entiers, en Java 8, il existe la possibilité d'utiliser les long comme quantités unsigned avec une plage (positive) qui va jusqu'à 264-1. | 0L | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| float | 32 bits | Nombres à virgule flottante en simple précision selon la spécification IEEE 754, en utilisant la représentation signe, mantisse, exposant.(-1)signe * mantisse * 2exposant | 0.0f | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| double | 64 bits | Nombres à virgule flottante en double précision selon la spécification IEEE 754. La précision avec laquelle les nombres sont représentés augmente en vertu de l'augmentation du nombre de bits utilisés. | 0.0d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| boolean | non spécifié, mais un seul bit suffirait | sert à représenter seulement 2 valeurs : vrai ou faux (true ou false). | false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| char | 16 bits | est utilisé pour la mémoire des caractères du jeu de caractères Unicode) dans la plage [' ', ''] (en hexadécimal) ou équivalent [0,65535]. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||