强制转换
(类型)变量名 高->低
自动转换
低->高
int i =128;
double b = i;
System.out.println(b);//128.0
注意问题
-
内存溢出
int i =128; byte b =(byte) i;// -128 内存溢出 System.out.println(b);// -128 -
不能对布尔值转换
-
不能把对象类型转换为不相干的类型
-
在把高容量的转换到低容量的时候,强制转换
int i =12; byte b =(byte) i;int money=10_0000_0000 int years =20; int total = money*years;//-1474836480,计算的时候溢出了 long total2 =money*years;//默认是int,转换之前已经存在问题了 long total3 =money*((long)years);//先把一个数转换为long System.out.println(total3);//200_0000_0000 -
转换的时候可能存在内存溢出,或者精度问题!
System.out.println((int)23.7);//23 System.out.println((int)-45.89f);//-45
JDK新特性
数字之间可以用下换线分割
int money =10_0000_0000;
System.out.println(money);//1000000000
浙公网安备 33010602011771号