Java中的数据类型转换主要有强制类型转换(也叫显式类型转换)和自动类型转换(也叫隐式类型转换)两种。
强制类型转换,是通过把一种数据类型的值转换成另一种数据类型的值来实现。在进行强制类型转换前,需要用括号将目标数据类型括起来,然后将需要转换的值放在括号内,如下示例:
double d = 3.14; // 定义一个double类型的变量d
int i = (int) d; // 将double类型的变量d强制转换成整数类型,并赋值给变量i
需要注意的是,强制类型转换可能会造成精度损失或溢出等问题,因此在进行强制类型转换时,需要谨慎使用。
自动类型转换,是指在程序中,一些低精度类型的值可以直接赋值给高精度类型的变量或表达式的特定位置,Java编译器会自动将低精度类型转换成高精度类型。如下示例:
int i = 10; // 定义一个int类型的变量i
double d = i; // 将int类型的变量i自动转换成double类型,并赋值给变量d
在自动类型转换时,Java编译器会自动判断需要转换的数据类型,如果存在类型转换的隐患,会给出编译错误信息。
需要注意的是,自动类型转换只能从低精度类型转换成高精度类型,而不能反过来。