Implicit and Explicit type conversions in Java

Here is a nice looking hierarchical table which describes the rules for implicit and explicit conversions in Java. Any type can be expected to be implicitly converted to other types above it in the hierarchical table. Explict conversion would be required in cases were it is to be converted to an element of the type beneath it in the table.

double(64 bits)
————————
|
|

float (32 bits)
————————
|
|

long (64 bits)
————————
|
|

integer (32 bits) ————-> char (16 bits, non-signed)
————————
|
|

short (16 bits)
————————
|
|

byte (8 bits)

char to short or char to byte conversions are not possible because they are incompatible data types.