byte b1=3,b2=4,b; b=b1+b2;b=3+4; 为什么编译失败

byte b1=3,b2=4,b;
b=b1+b2;//错误byte运算先变成int,再计算, 因为他们最终是要转向int类型 而int类型的值不能赋值给byte,byte,char,short编译时都是需要转成int,才可运算。
b=3+4;//正确 因为他们都是常量 具有常量类型优化机制 可以直接识别为byte,两个常量相加,先计算常量数值,然后判断是否满足类型范围,再赋值。
哪句是编译失败的呢?为什么呢?

猜你喜欢

转载自blog.csdn.net/nextfailure/article/details/79907657
b1