由低到高是需要进行强制转换
格式:(类型名)变量名
自动转换由高到低时会自动进行转换
注意点-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换为低容量的时候要进行强制转换
-
转换的时候可能存在内存溢出,或者精度问题
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
}
}



