short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?

short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?
对于short s1=1;s1=s1+1;由于s1+1运算时会自动提升表达式的类型,所以结果是int型,在赋值给s1时,编译器会报需要强制类型转换发错误
对于short s1=1;s1+=1;由于+=是java规定的运算符,编译器会对它进行特殊处理,因此可以正确编译。

原文地址:https://www.cnblogs.com/juddy/p/14173184.html