The char type is the same memory size as a short.
A char value can be converted to a short and the other way around as well.
However, neither is a widening conversion. Ordering including char:
byte -> short -> int -> long -> float -> double / / char --/ That is, char -> int is a widening conversion. So Ex1. char ch = 'A'; int n; n = ch; // Ok. A widening conversion. n = 66; ch = (char) n; // narrowing conversion requires a cast But, Ex2. short s = 65; char ch; ch = (char) s; // Can be converted, but not widening; reqires cast ch = 'B'; s = (short) ch; // Can be converted, but also not widening; reqires cast