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