作业运算符( - 和)

这些运算符的左手操作数必须是非 final 变量或数组的元素。右侧操作数必须与左侧操作数兼容。这意味着类型必须相同,或者右操作数类型必须通过装箱,拆箱或加宽的组合转换为左操作数类型。 (有关完整的详细信息,请参阅 JLS 5.2 。)

操作和分配运算符的精确含义由 JLS 15.26.2 指定为:

形式 E1 op= E2 的复合赋值表达式相当于 E1 = (T) ((E1) op (E2)),其中 TE1 的类型,除了 E1 仅被评估一次。

请注意,在最终赋值之前存在隐式类型转换。

1. =

简单赋值运算符:将右手操作数的值赋给左手操作数。

示例:c = a + ba + b 的值添加到 c 的值并将其分配给 c

2. +=

add and assign 运算符:将右手操作数的值添加到左手操作数的值,并将结果赋给左手操作数。如果左手操作数的类型为 String,那么这是一个连接并分配运算符。

示例:c += ac = c + a 大致相同

3. -=

subtract and assign 运算符:从左手操作数的值中减去右操作数的值,并将结果赋值给左手操作数。

示例:c -= ac = c - a 大致相同

4. *=

multiply and assign 运算符:将右侧操作数的值乘以左侧操作数的值,并将结果赋值给左侧操作数。。

示例:c *= ac = c * a 大致相同

5. /=

除法和赋值运算符:将右侧操作数的值除以左侧操作数的值,并将结果赋值给左侧操作数。

示例:c /*= ac = c / a 大致相同

6. %=

模数和赋值运算符:通过左手操作数的值计算右手操作数的值的模数,并将结果赋值给左手操作数。

示例:c %*= ac = c % a 大致相同

7. <<=

左移和分配运算符。

示例:c <<= 2c = c << 2 大致相同

8. >>=

算术右移和分配运算符。

示例:c >>= 2c = c >> 2 大致相同

9. >>>=

逻辑右移和分配运算符。

示例:c >>>= 2c = c >>> 2 大致相同

10. &=

按位和分配运算符。

示例:c &= 2c = c & 2 大致相同

11. |=

按位或分配运算符。

示例:c |= 2c = c | 2 大致相同

12. ^=

按位独占或分配运算符。

示例:c ^= 2c = c ^ 2 大致相同