如果声明的s是short类型,例如: short s =2 s =s+2编译的时候会报错,因为s+2的时候会提升为int类型,然后再赋给short类型的s时会报错:损失精度。 s+=2则可以通过编译,因为它内部会有一个自动转换过程。 这是它们的主要区别