3.9.1 Java的自动类型转换
当将某种类型的数据赋给另外一种类型的变量时,如果满足如下两个条件,就会发生自动类型转换:
两种类型是兼容的。
目标类型大于源类型。
当满足这两个条件时,会发生扩宽转换(widening conversion)。例如,要保存所有有效的byte值,int类型总是足够的,所以不需要显式的强制转换语句。
对于扩宽转换,数值类型(包括整型和浮点型)是相互兼容的。然而,不存在从数值类型到char或boolean类型的转换。此外,char和boolean相互之间也不是兼容的。
在前面提到过,当将字面整数常量保存到byte、short、long或char类型的变量中时,Java也会执行自动类型转换。