类型转换
强制转换
由低到高是需要进行强制转换
格式:(类型名)变量名
自动转换
由高到低时会自动进行转换
注意点
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换为低容量的时候要进行强制转换
-
转换的时候可能存在内存溢出,或者精度问题
public class demo03 { public static void main(String[] args) { int i = 128; byte j = (byte) i; System.out.println(i); System.out.println(j);//输出为-128 溢出了 因为byte的最大值是127 float a = 10.5F; double b = 15.5; System.out.println((int)a);//输出10 精度损失了 System.out.println((int)b);//输出15 精度损失了 / //操作比较大的数字的时候,注意溢出问题 int money = 10_0000_0000 ; int years = 20; int total = money*years; long total1 = money*years; long total2 = money*(long)years; long total3 = (long)money*years; System.out.println(total);//输出-1474836480 溢出了 System.out.println(total1);//输出-1474836480 money和years是int 所以转换之前就已经存在问题了 即使total换成long也没用 System.out.println(total2);//输出20000000000 System.out.println(total3);//输出20000000000 } }