表达式:
x += i;
x = x + i;
复合赋值运算符:+=,-=,*=,/=,%=,<<=,>>=,&=,|=
复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型;
问题:若左侧变量类型小于返回值,则会自动做窄类型转换;
short x = 0;
int i = 123456;
x += i ; //自动做窄类型转换
x = x + i; //错误需要显示转换,不合法
但在进行引用操作时:
Object x = "buy";
String i = "eee";
x = x + i; //合法;String和Object类型兼容
x += i; //不合法,左侧是Object,而右边是String;