本帖最后由 Teemo_Mann 于 2014-4-14 13:55 编辑
1.byte b = 1; b = b + 1; 这个是错的,因为
使用二目运算符的运算中,低于int型的都会转成int运算 ,所以在B选项中b+1被转换成了int,int赋给一个byte对象需要强制转换.
2.而如果是像b += 1,和b++这种都是一目运算符,其实在底层判断范围未超过128后会自动转成
(byte)b = (byte)b + (byte)1;
但是我想问最后一种byte b = 1 + 1; 不报错的原因难道也是如2的原因吗
|