因为Java属于强类型语言,所以在进行一些运算时,需要用到类型转换。
浮点数类型的优先级要比整数高,所以即使float时32字节,long64字节,float要放在long的前面
在运算时,需要将不同类型的数据先转换为同一类型,然后进行运算。
(数据类型)变量名 高----------------->低
在使用时注意避免内存溢出问题
public class Demo04 { public static void main(String[] args) { int i = 128; //强制类型转换 byte b = (byte) i; System.out.println(i); //byte的最大值是127,给它赋128时会有内存溢出,所以会输出-128 //在使用时尽量避免内存溢出 System.out.println(b);//-128 } }转换时按照上图以 低----------------->高 的方式进行转换,系统会自动进行转换。
注意点
不能对Boolean值进行转换不能把对象类型转换为不相关的类型在把高容量的数据类型转换为低容量的时候,使用强制转化;而低容量转换为高容量就是自动转换。在强制类型转换的时候可能会出现溢出问题,数据的精准度问题注意溢出问题
public class Demo05 { public static void main(String[] args) { //注意溢出问题 int money = 1000000000; int years = 20; int total = money * years;//-1474836480,出现了溢出问题 System.out.println(total); long total2=money*years; //money和years都是int类型,在运算的时候还是会有溢出问题,所以total2得到的是溢出之后的值。 System.out.println(total2); long total3=money*((long)years); //在运算之前,先将其中一个数转换为long类型,这样就可以得出正确的结果了 System.out.println(total3); } }