short s = 1; s = s + 1; 由于s+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s时,编译器将报告需要强制转换类型的错误。
对于short s = 1; s += 1; +=默认会进行类型转换。这里使用字节码命令I2S(Convert int to short)将int类型转换成了short类型,所以这里是OK的。

博客介绍了Java中short类型运算的类型转换情况。如's = s + 1',运算时表达式类型自动提升为int,赋值给short会报错;而's += 1'默认进行类型转换,使用I2S命令将int转成short,可正常运行。
short s = 1; s = s + 1; 由于s+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s时,编译器将报告需要强制转换类型的错误。
对于short s = 1; s += 1; +=默认会进行类型转换。这里使用字节码命令I2S(Convert int to short)将int类型转换成了short类型,所以这里是OK的。

195
2478

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