📺Рассмотрим код: byte b1 = 127; Число 127 здесь называется литералом. По умолчанию любой целочисленный литерал в Java имеет тип int. Поскольку значение 127 входит в допустимый диапазон для типа byte (от -128 до 127), компилятор разрешает автоматическое (неявное) преобразование из int в byte.

📟Если же мы напишем: byte b2 = 128; // Ошибка компиляции! ...то компилятор выдаст ошибку: "Incompatible types. Found: 'int', required: 'byte'" (Типы несовместимы. Обнаружен: int, требуется: byte). Это происходит потому, что число 128 находится за пределами диапазона для byte.

👻Чтобы скомпилировать этот код, необходимо выполнить явное приведение типов: byte b2 = (byte) 128; В этом случае компилятор примет код, но значение переменной b2 будет равно -128. Это происходит из-за того, что диапазон значений byte замыкается в кольцо, и после максимального значения (127) следует минимальное (-128).

📺Рассмотрим код: byte b1 = 127;
Число 127 здесь называется литералом.
По умолчанию любой целочисленный литерал в Java имеет тип int | Сетка — социальная сеть от hh.ru