short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 对于short s1 = 1;s1 = s1 + 1;由于s1 + 1 会自动提升表达式的类型,所以结果为int型,再赋值给short类型s1时,编译器将报告强制类型转换的错误。对于short s1 = 1;s1 += 1;+=是java语言规定的运算符,java语言会对她进行特殊处理,因此可以正确编译。