+= 和 + 运算之后赋值有什么区别

short s = 8;
s = s + 4;
s += 4;

java中为何第二句编译出错,第三句没有问题?将short改为int编译全通过。
求解释两种运算的区别

阅读 3.1k
2 个回答

为何第二句出错?
因为short和int相加不等于short,并且没强转就赋值给了short
+=隐式的包含了强转结果为short

推荐问题