其实是不一样的,只能说是相似,但本质上并不是完全相同
如 :
byte b = 1;
b = b + 1;//编译不能通过
b += 1;//编译通过
其他如 -= 、 *= 、/= 之类的扩展运算符也是同理,永远都不会改变运算结果类型。
或者这样说:
byte b=1;
b += 1 等同于 b= (byte)(b+1); // 但是这样可能会损失精度。