由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
低----------------------------------------高
byte,short,char ---> int ---> long ---> float ---> double
运算中,不同类型的数据先转化为同一类型,然后进行计算。
int i = 128;
byte j = (byte)i;//强制转换 (类型)变量名 高------低
int i = 128;
double j = i;//自动转换 低------高
注意点:
不能对布尔值进行转换
不能把对象类型转换为不相干的类型
把高容量转换为低容量的时候,强制转换,反之自动转换
转换的时候可能存在内存溢出,或者精度的问题
操作数比较大的时候,注意溢出问题
int money = 10_0000_0000;//JDK新特性,数字之间可以用下划线分割且下划线不会被输出
int years = 20;
int total = money*years;//-1474836480,计算的时候溢出
long total2 = money*years;//计算之前money和years默认是int,所以溢出
long total3 = money*((long)years);//先把一个数转换为long
要用1.2F和2.3L,不要用1.2f和2.3l,用大写不要用小写,以便观察
原文:https://www.cnblogs.com/guoguodong/p/14802559.html