Каков размер примитивных типов данных в Java?

«Каков размер примитивных типов данных в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Размеры примитивных типов в Java фиксированы и не зависят от платформы (JVM-спецификация). Это обеспечивает переносимость.

Таблица размеров:

Тип Размер Диапазон значений
byte 1 байт -128 ... 127
short 2 байта -32 768 ... 32 767
int 4 байта -2³¹ ... 2³¹-1
long 8 байт -2⁶³ ... 2⁶³-1
float 4 байта ~±3.4e-38F ... ~±3.4e+38F
double 8 байт ~±1.7e-308 ... ~±1.7e+308
char 2 байта 0 ... 65 535 (беззнаковый, Unicode)
boolean не определен true/false (JVM использует int или byte)

Практическая проверка: Для числовых типов можно использовать константы *.BYTES из классов-обёрток:

System.out.println(Integer.BYTES); // 4
System.out.println(Double.BYTES);  // 8

Важно: Размер гарантирован только для примитивов в массивах (byte[], int[]). Для локальных переменных JVM может применять оптимизации (например, размещение в регистрах процессора).