Assignment Compatibility. Normally, we can only assign values to a variable that are of the same type as we declared the variable to be. For example, we can assign an integer value to an integer variable. However, we can also assign a byte value to an integer due to the following ordering: byte -> short -> int -> long -> float -> double

Values on the left can be assigned to variables whose types are to the right. You cannot go in the other direction.