1)对于short s1 = 1;s1=s1+1; 来说,在s1+1运算时会自动提升表达式的类型为int,那么将int赋予给short类型的变量s1会出现类型转换错误。
2)对于short s1=1;s1+=1;来说,+=是Java语言规定的运算符,Java会对它进行特殊处理—强制类型转化(short s1 = (short)(s1+1)),因此可以正确编译。
1)对于short s1 = 1;s1=s1+1; 来说,在s1+1运算时会自动提升表达式的类型为int,那么将int赋予给short类型的变量s1会出现类型转换错误。
2)对于short s1=1;s1+=1;来说,+=是Java语言规定的运算符,Java会对它进行特殊处理—强制类型转化(short s1 = (short)(s1+1)),因此可以正确编译。