Тип данных byte — это 8-битный целочисленный тип данных Java со знаком.

Его диапазон составляет от -128 до 127 (от -27 до 27–1).

Тип byte — это наименьший целочисленный тип данных, доступный в Java.

байтовые переменные используются, когда в программе используется большое количество переменных, значения которых находятся в диапазоне от -128 до 127, или при работе с двоичными данными в файле или по сети.

Байтовых литералов нет. Мы можем присвоить любой литерал int, попадающий в диапазон byte, переменной byte.

Например,

byte b1 = 125;
byte b2 = -11;

Если мы назначаем литерал int переменной byte, а значение выходит за пределы диапазона типа данных byte, Java генерирует ошибку компилятора.

Мы можем присвоить только литерал int между -128 и 127 байтовой переменной. Но мы можем присвоить значение, хранящееся в переменной типа int, которая находится в диапазоне от -128 до 127, байтовой переменной.

В Java мы не можем присвоить значение переменной с более высоким типом данных диапазона переменной с более низким типом данных диапазона, потому что при таком присвоении возможна потеря точности.

Чтобы сделать такое присваивание от int к byte, мы должны использовать приведение.

Присвоение num1 переменной b1 можно переписать следующим образом:

int num1 = 1;
byte b1  = (byte)num1; // Ok

В Java есть класс Byte, который определяет две константы для представления максимального и минимального значений типа данных byte: Byte.MAX_VALUE и Byte.MIN_VALUE.

byte   max = Byte.MAX_VALUE;
byte   min = Byte.MIN_VALUE;