java中理解强制类型转换
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,两个常量相加,先计算常量数值,然后判断是否满足类型范围,再赋值。