Ответ
Примитивные типы в Java имеют фиксированный, независимый от платформы размер, определенный спецификацией языка.
| Таблица размеров: | Тип | Размер | Диапазон значений |
|---|---|---|---|
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 (IEEE 754) | |
double |
8 байт | приблизительно ±1.8e+308 (IEEE 754) | |
char |
2 байта | символы Unicode (от u0000 до uffff) |
|
boolean |
не определен | Обычно 1 байт, но зависит от JVM и контекста. |
Примеры и важные замечания:
int count = 100; // Занимает 4 байта в стеке или внутри объекта.
double sum = 123.45; // Занимает 8 байт.
boolean flag = true; // Фактический размер определяется JVM.
- В массивах: Размер вычисляется как
(размер_элемента * количество) + заголовок_массива(обычно 12-16 байт). - Внутри объектов: Память может быть дополнена выравниванием (padding) для эффективного доступа процессора, поэтому общий размер объекта может быть немного больше суммы размеров его полей.