非数字原始投射
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