最近在面试题上面看到a = a+1与a+=1有什么区别,咋一看,好像没啥区别,查了一下资料,其实是有区别的。在此记录一下。 对于short a= 1;a = a+1来说会报错,a+1运算时会自动提升表达式的类型为int类型,即a+1会转换成int类型,而a是short类型,int类型不能转换成short,会出现类型转换错误。 对于short a= 1;a +=1来说,“+=”是java中的一个运算符,在运算时 会进行自动类型转换。所以在编译时没有报错。