对于short s1 = 1;s1 = s1 +1;由于1是int类型,因此s1+1运输结果是int,需要强制类型转换才能赋值给short型。
而short s1 = 1; s1 += 1;
+=操作符会进行隐式类型转换,是java语言规定的运算符;java编译器会对其进行特殊的处理,因此可以正确编译。因为s1 += 1相当于s1 = (short)(s1 + 1)。
这篇博客探讨了Java编程中short类型变量与int类型运算的问题。文章指出,当使用`s1=s1+1`时,由于1是int类型,需要显式类型转换才能将结果赋值给short类型的s1。然而,使用`s1+=1`时,Java的+=运算符会进行隐式类型转换,使得这段代码能够正确编译,等价于`s1=(short)(s1+1)`。本文深入解析了Java语言规范中的这种特殊处理,并强调了类型转换在编程中的重要性。
对于short s1 = 1;s1 = s1 +1;由于1是int类型,因此s1+1运输结果是int,需要强制类型转换才能赋值给short型。
而short s1 = 1; s1 += 1;
+=操作符会进行隐式类型转换,是java语言规定的运算符;java编译器会对其进行特殊的处理,因此可以正确编译。因为s1 += 1相当于s1 = (short)(s1 + 1)。

被折叠的 条评论
为什么被折叠?