3.2.5 数据类型转换

在算术运算和扩展赋值运算中,每个运算符都使用了两个操作数。讲解的时候,都是使用相同数据类型的数值进行讲解的。如果两个操作数的数据类型不同,就需要对操作数进行类型转换,之后才能运算。根据转换方式的不同,数据类型转换分为自动转换和手动转换两种。下面依次讲解这两种方式。

1.自动转换

自动转换是Java语言直接支持的转换方式。对于支持自动转换的数据类型,Java语言会按照特定的规则直接进行转换,然后进行运算。要实现自动转换,必须满足以下两个条件:转换前的数据类型与转换后的数据类型兼容;转换后的数据类型的取值范围比转换前的数据类型的取值范围大。

不同数据类型的常见转换如表3.6所示。

表3.6 数据类型转换

续表

直观的自动转换方向图如图3.6所示。

图3.6 自动转换方向图

注意:对于直接出现在程序中的整数字面量,Java会按照int类型进行处理;对于小数字面量,Java会按照double类型进行处理。

示例3-16】下面将实现自动转换。代码如下:

运行结果如下:

2.手动转换

如果Java的自动转换规则不满足特定需要,就需要手动转换,即指定数值转换后的类型,如将一个高精度的类型转换为一个低精度的类型。手动转换又被称为强制类型转换,其转换形式如图3.7所示。

图3.7 手动转换形式

示例3-17】下面将实现手动转换。代码如下:

运行结果如下: