Java 的隐式类型转换是什么?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
隐式类型转换指编译器在允许的上下文中自动完成转换,不需要程序员写强制转换符。常见例子是 int 赋给 long、算术运算中的数值提升,以及装箱、拆箱。是否允许转换取决于具体上下文,不能只按类型占用的字节数判断。
讲清原理
“范围变大”不等于“每一个值都能精确表示”。例如 int 转 float、long 转 double 虽然属于允许的拓宽转换,仍可能丢失低位精度,因为浮点数用有限有效位表示数值。
编译期常量还有特殊规则:在赋值上下文里,范围合适的整数常量可以赋给 byte、short、char。普通 int 变量即使当前值为 1,也不一定能隐式赋给 byte。boolean 不参加数值类型转换。
例子与易错点
long total = 3; // int → long
float rounded = 16_777_217; // int → float,允许但不精确
byte small = 127; // 常量在 byte 范围内
System.out.println((int) rounded); // 16777216
“能编译”只表示规则允许,不保证转换后的数值仍完全相等。还要关注装箱后的 null:自动拆箱可能抛 NullPointerException。
相关题:第 18 题、第 25 题、第 53 题。
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。