这两个赋值方式其实是有区别的,如果最后结果的类型和左操作数的类型一样,那么这两个表达式就完全等价. 下面来看看两个例子来理解它们的区别: 编写一个程序,使得x+=i合法, x = x+i: 不合法. public void assignment(){ short x = 0; int i = 82345; x+=i ; System.out.println(x); } 输出结果:16809 原因:最后结果int 类型的82345对于short 类型来说太大的,自动产生的转型把int 类型的高位截…