先说结论: 精度小于int的数值(char、byte、short)在运算时会自动转换为int类型,再进行计算。
eg:
byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6; b6=b4+b5; //这里不会出错,b4和b5是常量,在编译时就变成b6=10 b3=(b1+b2); //出错,b1+b2会生成int类型,而b3是byte类型
先说结论: 精度小于int的数值(char、byte、short)在运算时会自动转换为int类型,再进行计算。
eg:
byte b1=1,b2=2,b3,b6; final byte b4=4,b5=6; b6=b4+b5; //这里不会出错,b4和b5是常量,在编译时就变成b6=10 b3=(b1+b2); //出错,b1+b2会生成int类型,而b3是byte类型