En la versión de 32 bits, el rango representable se calcula pensando en un bit de signo, una mantisa de 23 bits y un exponente de 8 bits con valores comprendidos entre -126 y 127.
Además, el estándar prevé la representación de dos valores para cero (de derecha a izquierda) dos para infinito (positivo y negativo), y de valores NaN (no es un número) para utilizar, por ejemplo, como resultados de operaciones imposibles (por ejemplo, divisiones por cero).
| Tipo | Cantidad de Memoria | Información representada | Valor por defecto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| byte | 8 bits | Variable con signo (con representación "two’s complement", complemento a dos) y representa valores en un rango [-128 y 127] (extremos incluidos) | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| short | 16 bits | Números enteros (con signo) en un rango [-32,768, 32,767] | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| int | 32 bits | Números enteros (por defecto con signo, firmado) en un rango [-231, 231-1]. Con Java 8 se introdujo la posibilidad de utilizar los int para representar cantidades sin firmar que podrán tener un rango [0, 232-1] (gracias a métodos estáticos introducidos en las clases Integer y Long) | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| long | 64 bits | Números enteros (por defecto con signo, firmado) en un rango [-263, 263-1]. Al igual que con los enteros en Java 8, existe la posibilidad de utilizarlos como cantidades sin firmar con un rango (positivo) que llega hasta 264-1. | 0L | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| float | 32 bits | Números en punto flotante en precisión simple según la especificación IEEE 754, utilizando la representación signo, mantisa y exponente.(-1)signo * mantisa * 2exponente | 0.0f | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| double | 64 bits | Números en punto flotante en doble precisión según la especificación IEEE 754. La precisión con la que se representan los números aumenta en virtud del aumento del número de bits utilizados. | 0.0d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| boolean | No especificado, pero sería suficiente un solo bit | Sirve para representar solamente 2 valores: verdadero o falso (verdadero o falso). | falso | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| char | 16 bits | Se utiliza para la memorización de caracteres del conjunto de caracteres Unicode) en el rango [' ', ''] (en hexadecimal) o equivalentemente [0,65535]. | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||