类型转换

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); // 这样就可以输出正常的结果了。
posted @ 2021-02-24 18:36  一个汉服程序员苏木  阅读(93)  评论(0)    收藏  举报