Ответ
Примитивные типы данных (primitive types) в Java — это простые, встроенные в язык типы, которые хранят свои значения непосредственно в переменной (по значению). Они не являются объектами и представляют собой сырые данные.
Характеристики:
- Хранят значение в стеке (stack memory) или внутри объекта.
- Имеют фиксированный размер в памяти.
- Не имеют методов.
- Не могут быть
null(имеют значения по умолчанию). - Работа с ними очень эффективна.
| Таблица примитивных типов Java: | Тип | Размер (биты) | Диапазон/Значения по умолчанию | Класс-обёртка |
|---|---|---|---|---|
boolean |
не определён точно (обычно 1) | true / false (по умолчанию false) |
Boolean |
|
byte |
8 | от -128 до 127 | Byte |
|
char |
16 | 'u0000' до 'uffff' (0 до 65535) | Character |
|
short |
16 | от -32,768 до 32,767 | Short |
|
int |
32 | от -2^31 до 2^31-1 | Integer |
|
long |
64 | от -2^63 до 2^63-1 (суффикс L) |
Long |
|
float |
32 | ~1.4e-45 до ~3.4e+38 (суффикс F) |
Float |
|
double |
64 | ~4.9e-324 до ~1.8e+308 | Double |
Примеры объявления:
// Целочисленные типы
byte smallNumber = 100;
short mediumNumber = 30_000;
int age = 30; // Наиболее часто используемый
long bigNumber = 100_000_000_000L; // Требуется суффикс L
// Типы с плавающей точкой
float price = 19.99F; // Требуется суффикс F
double preciseValue = 3.141592653589793; // Тип по умолчанию для дробных
// Символьный и логический типы
char grade = 'A';
boolean isJavaFun = true;
Автоупаковка и автораспаковка (Autoboxing/Unboxing): Начиная с Java 5, компилятор автоматически преобразует примитивы в соответствующие классы-обёртки и обратно, что упрощает код, но требует внимания к производительности и сравнению (== vs .equals()).
Integer boxedInt = 42; // Автоупаковка (int -> Integer)
int primitiveInt = boxedInt; // Автораспаковка (Integer -> int)