Java是强类型语言,所以进行一些运算时,需要进行强制类型转换,转换成同一类型,然后进行运算。
容量从低到高(字节大小):
byte->short->char->int->long->float->double
(小数优先级大于整数)
字节从高到低,高容量转到低容量需要强制类型转换
从低到高,自动类型转换
转换的时候可能存在内存溢出。或者精度问题
不能对布尔值进行转换
不能把对象类型转换成不相干的类型
int money = 10_0000_0000;
int num = 20;
int sum = money * num; // -1474836480 计算时已经溢出
long sum2 = money * num; // 结果依旧时-1474836480
long sum3 = money * (long)num; // 结果正确 , 先把一个数字转成long
// 建议用大写L,小写l容易和别的字符混淆
原文:https://www.cnblogs.com/javaupup/p/14240451.html