非数字原始投射

boolean 类型不能转换为任何其他基本类型。

通过使用 Unicode 指定的代码点映射,可以将 char 强制转换为任何数字类型。char 在内存中表示为无符号的 16 位整数值(2 个字节),因此转换为 byte(1 个字节)将丢弃其中的 8 个位(这对于 ASCII 字符是安全的)。Character 类的实用方法使用 int(4 字节)传输到/从代码点值传输,但是 short(2 字节)也足以存储 Unicode 代码点。

int badInt   = (int)  true; // Compiler error: incompatible types

char char1   = (char)   65; // A
byte byte1   = (byte)  'A'; // 65
short short1 = (short) 'A'; // 65
int int1     = (int)   'A'; // 65

char char2   = (char) 8253; // ‽
byte byte2   = (byte)  '‽'; // 61 (truncated code-point into the ASCII range)
short short2 = (short) '‽'; // 8253
int int2     = (int)   '‽'; // 8253