在JavaSE中,当把一个变量赋值给另一个变量时,如果两个变量的数据类型不同,就会发生类型转换。JavaSE支持两种类型转换:强制类型转换和自动类型转换。
强制类型转换(也称为手动类型转换)是指在把一个变量赋值给另一个变量时,显式地指定要把变量转换成的数据类型。强制类型转换是使用小括号括起来的目标数据类型放在要转换的变量前面,例如:
int i = 10;
long l = (long) i;
在上面的代码中,把int类型的变量i赋值给long类型的变量l。因为int和long是两种不同的数据类型,所以需要使用强制类型转换。我们使用小括号括起来的long类型放在变量i前面,表示要把变量i强制转换成long类型。
自动类型转换(也称为隐式类型转换)是指在把一个变量赋值给另一个变量时,编译器自动地把变量转换成适当的数据类型。自动类型转换只会发生在两个条件。
boolean 类型不能转换成任何其它数据类型。
自动类型转换:容量小的类型自动转换成容量大的数据类型 byte,short,int-> float ->long->double
byte,short,int 不会互相转换,它们三者在计算时会转换成int类型~
强制类型转换:容量大的类型转换成容量小的数据类型时,要加上强制转换符()
int c=3;
float b=c; //int->float 小->大
c=(int)b; //大->小得强制类型转化,加上强制转换符