【发布时间】:2015-08-28 09:18:26
【问题描述】:
为什么下面的代码不会产生错误?
System.out.println((char) 2147483647);
根据oracle datatypes,char 的最大大小为65,535。
- char:char 数据类型是单个 16 位 Unicode 字符。它的最小值为“\u0000”(或 0),最大值为“\uffff”(或 65,535 包括在内)。
【问题讨论】:
-
它打印什么?不是
2147483647。为什么不?这就是你的答案... -
它进行了缩小转换,2147483647 是一个 int,而您将其缩小为一个字符。正如你所提到的,char 的最大值是 65535。如果你这样做,System.out.println((int)(char)2147483647); ,你会看到它打印的是 65535 而不是 2147483647。HTH