
上QQ阅读APP看书,第一时间看更新
2.4.1 自动类型转换
自动类型转换也称隐式类型转换,指不需要额外书写代码,由系统根据一定条件自动完成的类型转换。自动类型转换需要满足两个条件:
转换前后的数据类型必须兼容。例如,int型与long型都是整型,所以彼此兼容;布尔型不能与整型进行自动类型转换,二者是不兼容的。
转换后的数据类型范围比转换前的大。就像两个不同的箱子,我们可以把小箱子放进大箱子里,但是不可以把大箱子放进小箱子里。
事实上,自动类型转换只有在将取值范围小的变量直接赋值给取值范围大的变量的时候,即将占用内存小的数据类型转换为占用内存大的数据类型的时候,才可以使用。Java支持自动类型转换的类型,如图2.1所示。

图2.1 自动数据类型转换图
自动类型转换的具体示例如下:
byte b = 98; // 声明byte型变量,值为98 int a = b; // 正确,byte取值范围比int小,可以直接转换