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