基础数据类型优先级
低-----------------------------------------------------高
byte,short,char,int,long,float,double
从高优先级转换到低优先级必须使用强制类型转换,要注意避免数据溢出和精度损失的出现。
格式:(类型)变量名
从低优先级转换到高优先级可以使用自动类型转换,自动类型转换直接赋值即可,系统自动进行数据转换。
- 在Java中数值类型不可以转换成boolean类型。
- 可以把数据类型封装类对象类型转换成对应的数据类型,不可以转换成无关的数据类型。
- 强制类型转换时要注意避免数据溢出和精度损失。
- 数值类型的数据在计算时结果默认为原数据类型再进行后续的转换或赋值,因此在考虑数据溢出和精度损失时,也应该考虑后续的计算问题。例如:
int n = 1000000000;
long m = n*1000;
System.out.println(n);
System.out.println((int)n*1000);
System.out.println(m);
结果为:
这里long类型的m变量依旧发生了数据溢出的现象,是因为m变量在赋值时,n*1000的结果默认储存为int类型再转换成long类型。在储存为int类型的时候已经发生数据溢出,后续转换成long类型的时候数据溢出也不会逆转。因此我们也要考虑数据运算时的数据溢出和精度损失。