java中a=a+b和a+=b的区别?

216 阅读1分钟

a=a+b和a+=b的区别

+=会进行隐式的自动类型转换,将加操作的结果强制转换为持有结果的类型

a=a+b就不会进行自动类型转换

byte a=10;
byte b=10;
//  b=a+b;  报编译错误:cannot convert from int to byte
b+=a;

byte类型在运算的时候会自动提升为int 类型,所以上面a+b 的结果是int类型,但是b是byte 类型所以就会报编译错误