由于Java是强类型语言,所以要进行有些运算的时候需要用到类型转换
-
java数据类型由低到高如下:
低----------------------------------------------------->高
byte,short,char ->int ->long ->float ->double
数据类型转换时,从低到高会自动转换,从高到底需要强制转换
-
注意点
1.不能对布尔类型值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换为到低容量的时候,强制转换
4.转换的时候可能存在内存溢出或精度问题 -
操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割: int money = 10_0000_0000; int year = 20; int total = money * years;//-1474836480,计算的时候溢出了 //下面尝试用long类型接收数据,发现结果一样 long total2 = money * year;//默认是int,转换之前已经存在问题了 //可以先把money或year先转为long类型再做转换 long total3 = money * (long)year;//输出正常20000000000