The byte data type is an 8-bit signed Java primitive integer data type.
Its range is -128 to 127 (-27 to 27 - 1).
byte type is the smallest integer data type available in Java.
byte variables are used when a program uses a large number of variables whose values fall in the range -128 to 127 or when dealing with binary data in a file or over the network.
There are no byte literals. We can assign any int literal that falls in the range of byte to a byte variable.
byte b1 = 125; byte b2 = -11;
If we assign an int literal to a byte variable and the value is outside the range of the byte data type, Java generates a compiler error.
We can only assign an int literal between -128 and 127 to a byte variable. But we can assign the value stored in an int variable, which is in the range of -128 to 127, to a byte variable.
In Java we cannot assign the value of a variable of a higher range data type to the variable of a lower range data type because there is a possible loss of precision in making such an assignment.
To make such an assignment from int to byte, we must use a cast.
The assignment of num1 to b1 can be rewritten as follows:
int num1 = 1; byte b1 = (byte)num1; // Ok
Java has a class
Byte, which defines two constants
to represent maximum and minimum values of the byte data type,
Byte.MAX_VALUE and Byte.MIN_VALUE.
byte max = Byte.MAX_VALUE; byte min = Byte.MIN_VALUE;