类型转换
精度从低到高
char,byte,short---->int--->long--->float--->double
运算中不同类型的数据先转化为同一类型,然后再进行计算
强制转换类型
精度:从高-->低
int i=128;
byte b = (byte) i;
System.out.println(i);//输出结果:128
System.out.println(b);//输出结果:-127 涉及到数据溢出
自动转化类型
精度: 从低-->高
int a=10;
double c = a;
System.out.println(a);//输出结果:10
System.out.println(c);//输出结果:10.0
注意点
-
不能对布尔值进行转换;
-
不能把对象类型转化为不相干的类型;
-
在把高容量转化为低容量时,强制进行;
-
转化时可能出现内存溢出问题.
补充
操作比较大的数字时,注意溢出问题;
JDK新特性,数字之间可以用下划线分割。
int money=10_0000_0000;
int year=20;
int total=money*year;//数据溢出
long total2=money*year;//默认是int类型,转换之前已经存在问题了?
long total3=money*((long) year);
System.out.println(total1);//输出结果为:-1474836480,数据溢出
System.out.println(total2);//输出结果为:-1474836480,数据溢出
System.out.println(total3);//输出结果为:20000000000
如何解决,在相乘之前就对一个数据进行强制转化.

浙公网安备 33010602011771号