Java is a strongly typed language, which means all variables are given types, and that the type of each variable cannot be changed.


Section 1 - Widening Conversions


For compatible primitive data types, Java will implicitly convert a literal, variable, expression, or method return from the smaller type to the larger type. This is called a widening conversion, because the new data type is wider than the original type, so no information is lost.


In the example below, the variable b is of primitive type byte which occupies one byte of memory. It contains the decimal value 20, which is the value 14 in hexadecimal. When the byte variable b is assigned to int variable i, Java implicitly performs a widening conversion and copies the value of the byte into the lowest byte of the memory occupied by int variable i. The upper three bytes of i contain zero. When printed, both variables display the value 20.




All integer and floating point primitive types are compatible. An integer type will be implicitly converted to a floating point type. When this occurs, the fractional component of the floating point number is zero.


int i = 20;
float f = i;                        // Implicitly performs widening conversion
System.out.println(i);                // Prints 20
System.out.println(f);                // Prints 20.0



Copyright ©2017 by Ralph Lecessi Incorporated. All rights reserved.