语义上二者差不多, 编译后a = a + b会多一步中间变量;针对字符串String类型, += 会自动调用 concat()方法, = 则会产生新对象, 因此 += 更高效;针对基础类型, += 会自动转换类型, 进而在高精度赋值低精度时候不会抛异常, 原因就是Java在运算 a + b时候会兼容低精度的类型, 因此(a+b)就是一个高精度类型, 这时候 如果左边等待赋值的类型是低精度类型就会引发unresolve异常