Ответ
Примитивный тип byte в Java всегда занимает 8 бит (1 байт) памяти.
Ключевые характеристики:
- Размер: Фиксирован, не зависит от операционной системы или архитектуры процессора (в отличие от C/C++).
- Диапазон значений: От -128 до 127 (включительно). Это соответствует
-2⁷до2⁷ - 1. - Назначение: Экономия памяти при работе с большими массивами чисел, чтении/записи бинарных данных (потоки, файлы).
Примеры и важные замечания:
byte correct = 100; // OK
byte max = 127; // OK, верхняя граница
byte min = -128; // OK, нижняя граница
// byte error = 128; // Ошибка компиляции: несовместимые типы.
// byte anotherError = -129; // Ошибка компиляции: несовместимые типы.
// При арифметических операциях byte неявно приводится к int:
byte a = 10;
byte b = 20;
// byte c = a + b; // Ошибка! Результат a + b имеет тип int.
byte c = (byte) (a + b); // Необходимо явное приведение.
Почему именно такой диапазон? byte — знаковый целочисленный тип. Старший бит используется как знаковый, оставляя 7 бит для значения, что дает 2⁷ = 128 возможных значений для положительной и отрицательной сторон.