在刚开始学时我们老师提到过几次强制类型转换
它是指将一个数据类型显式地转换为另一个数据类型。
当两种数据类型之间存在继承或实现关系,且目标类型是源类型的子类或子接口时,可以使用强制类型转换。
强制类型转换的语法是在源值之前加上目标类型的名称,并用圆括号括起来。例如,将double
类型转换为int
类型,可以使用以下语法:
double d = 123.4567;
int i = (int) d;
其中,d
是一个double
类型的变量,我们使用了强制类型转换(int)
来将其转换为int
类型,并将结果赋值给i
。
注意:在转换过程中,double
类型的小数部分会被截断,只保留整数部分。
强制转换的几个要点:
-
数据丢失:如果源类型的值在目标类型的表示范围内,则转换是安全的。如果源类型的值在目标类型的表示范围外,则转换可能导致数据丢失或溢出。
-
转换方向:强制类型转换总是从低精度类型向高精度类型进行,或者是从具体类型向它的超类或接口类型进行。
-
基本数据类型的转换:基本数据类型之间的转换需要特别小心,因为不同类型的表示范围和精度不同。例如,将
float
转换为int
会丢失小数部分,而将long
转换为int
可能会因为值超出int
的范围而导致数据丢失。