基本数据类型中数值类型之间可以相互转换,布尔类型不能参与进行转换。
数据类型之间的转换有两种方式:自动类型转换和强制类型转换。
4.8.1 自动类型转换
自动类型转换就是小范围数据类型可以自动转换为大范围数据类型。
类型转换顺序如下:
由上图可知:char自动转换成int、long、float和double,但是byte和short不能自动转换成char,而char也不能自动转换成byte或short。
自动类型转换发生在赋值和数学计算时,在进行数学运算时是先将数据类型自动转换为同一类型后再进行计算。
自动类型转换规则:
操作数类型 | 操作数类型 | 转换后类型 |
---|---|---|
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int、long | float | float |
byte、short、char、int、long、float | double | double |
4.8.2 强制类型转换
当需要将数据类型从大宽度类型转换为小宽度类型时使用强制类型转换。
强制类型转换的实现方式为:变量或常量之前加上“(目标类型)”。
注:当大宽度数值转换为小宽度数值时,大宽度数值的高位会被截掉,从而导致数据精度的丢失。