由于Java是强类型语言,所以进行有些语言运算的时候,需要用到类型转换
低---------------------------------------------------------->高 (指容量,即字节大小)
byte,short,char -> int -> long -> float -> double
#char的本质是数字,所以也可以进行加减乘除的运算
#小数的优先级大于整数
#运算中,不同类型的数据先转换为同一类型,然后进行运算
int i = 127;
byte b = (byte)i;//强制转换,(类型)变量名,高->低
double c = i;//自动转换,低->高
/*
注意点
1,不能对布尔值进行转换
2,不能把对象类型转换为不相干的类型
3,高容量转换成低容量时注意内存溢出
4,小数转换的时候注意精度问题,如System.out.println((int)23.7);输出:23
*/
int money = 10_0000_0000;//JDK7新特征,数字之间可以用下划线分割
int years = 20;
int tota1 = money*years;
//-147483640,计算的时候溢出了
long tota2 = money*years;
//默认是int,转换之前已经存在问题了
long tota3 = money*((long)years);
//先把一个数转换为long,电脑就会把整个表达式都提升了,就会全部用long进行计算