java 中 byte a = 1; a += 1和 a = a + 1 有什么区别?
byte a = 1;
a += 1;
System.out.println(a);
a += 1;
会被编译为:byte a = (byte)(a + 1);
而 a = a + 1
呢?编译时会报错。
因为 1 默认是 int 类型 byte + init 类型会隐私转换为 int 类型,将 int 类型直接分配给 byte 类型就会报错
一般会采用强制转换的形式:a = (byte) (a + 1);