Numeric promotion in Java

Numeric promotion also known as Implicit casting or java automatic conversions where conversion of a smaller numeric type value to a larger numeric type automatically, so that integer and floating-point operations may take place. In numerical promotion , byte, char, and short values are converted to int values. The int values are also converted to long values, if necessary. The long and float values are converted to double values, as required.
int i = 25; double dbl1 = 2.5; double dbl2 = dbl1 * i;
In the above case, int i is promoted to double so the calculation can be performed. In some ways, you can think of this is analogous to boxing , but boxing involves moving from a struct to an object that is from the stack to the heap. But, using the analogy does give an idea of the fact the integral value is being made into a floating point to perform the calculation.

Widening Primitive Conversion

19 specific conversions on primitive types are called the widening primitive conversions:

byte to short, int, long, float, or double short to int, long, float, or double char to int, long, float, or double int to long, float, or double long to float or double float to double

Narrowing Primitive Conversion

22 specific conversions on primitive types are called the narrowing primitive conversions:

short to byte or char char to byte or short int to byte, short, or char long to byte, short, char, or int float to byte, short, char, int, or long double to byte, short, char, int, long, or float