「每天一道面试题」下面的代码有问题吗?为什么?

「每天一道面试题」下面的代码有问题吗?为什么?

壹:

short s1 = 1;

s1 = s1 + 1;

贰:

short s1 = 1;

s1 += 1;

壹编译报错,因为壹中由于1是int类型,所以s1+1运算结果也是int型,需要强制转换类型才能赋值给short型。

贰正确,因为s1+=1相当于s1 = (short)(s1+1),其中会有隐含的强制类型转换。