类型转换
Java中的类型转换
Java在运算的过程中,如果两个数据的类型不同,那么需要先转化为同一个类型的数据,然后进行计算。
那么在转换的过程中,其实是有一定的优先级顺序的。其顺序为:byte/short/char < int < long < float < double
由此可见:
-
所有的类型中,浮点数类型最高,整数类型次之。
-
每个大的分类中,优先级顺序由占用的字节数决定,占用的字节数越多,其优先级就越大。
强制类型转换
- 如果变量需要从高类型转到低类型时,就需要进行强制类型转换。
低类型 变量名 = (低类型)高类型变量; (高 ----> 低)
- 进行强制类型转换的时候,要注意有可能出现内存溢出等问题。
自动类型转换
- 如果是低类型转到高类型,那么就不需要使用强制类型转换,java会自动的帮你进行类型转换。
注意点:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 把高容量转换到低容量的类型的时候,需要使用强制转换,这个时候要注意有可能出现内存溢出或者是精度问题(精度省略并不是四舍五入,而是直接舍去。)
- JDK7的新特性:数字之间可以用下划线分割,在具体的使用中并不会将下划线带进去。
- 变量的赋值是在运算结束之后的,所以说下面的代码不能直接转换,必须要在计算的时候将其中一个变量转换才能正常计算。
int money = 10_0000_0000;
int years = 20;
//==============================
int total = money*years; // -14.....是不对的,因为出现了内存溢出。
//=============================
long total = money*years; // 结果和上面的一样,因为两个数默认是int,在计算的时候就已经出现了问题,所以存储的还是一样的。
// 正确的写法是:
long total3 = money*((long)years); // 这样就可以输出正常的结果了。

浙公网安备 33010602011771号