我们先来看两行代码:
short x = 1;
x = x + 1;
这个肯定会报错,我在上一讲已经讲过,这里就不多说了。
我们再来看下面两行代码:
short x = 1;
x += 1;
很多人会觉得这两个表达式是一样的,我之前也是这样认为的,但是它们真的不太一样。
最大的区别就是下面的表达式是不会报错的。如果你看过Java编程规范,你就会知道x += 1等价于x = (short) (x + 1)。也就是说,+= 运算符隐含了类型转换。
就算x是int型,这两个表达式的效率也不同,这个问题我将在下一讲讨论。