作业运算符( - 和)
这些运算符的左手操作数必须是非 final 变量或数组的元素。右侧操作数必须与左侧操作数兼容。这意味着类型必须相同,或者右操作数类型必须通过装箱,拆箱或加宽的组合转换为左操作数类型。 (有关完整的详细信息,请参阅 JLS 5.2 。)
操作和分配运算符的精确含义由 JLS 15.26.2 指定为:
形式
E1 op= E2的复合赋值表达式相当于E1 = (T) ((E1) op (E2)),其中T是E1的类型,除了E1仅被评估一次。
请注意,在最终赋值之前存在隐式类型转换。
1. =
简单赋值运算符:将右手操作数的值赋给左手操作数。
示例:
c = a + b将a + b的值添加到c的值并将其分配给c
2. +=
add and assign 运算符:将右手操作数的值添加到左手操作数的值,并将结果赋给左手操作数。如果左手操作数的类型为 String,那么这是一个连接并分配运算符。
示例:
c += a与c = c + a大致相同
3. -=
subtract and assign 运算符:从左手操作数的值中减去右操作数的值,并将结果赋值给左手操作数。
示例:
c -= a与c = c - a大致相同
4. *=
multiply and assign 运算符:将右侧操作数的值乘以左侧操作数的值,并将结果赋值给左侧操作数。。
示例:
c *= a与c = c * a大致相同
5. /=
除法和赋值运算符:将右侧操作数的值除以左侧操作数的值,并将结果赋值给左侧操作数。
示例:
c /*= a与c = c / a大致相同
6. %=
模数和赋值运算符:通过左手操作数的值计算右手操作数的值的模数,并将结果赋值给左手操作数。
示例:
c %*= a与c = c % a大致相同
7. <<=
左移和分配运算符。
示例:
c <<= 2与c = c << 2大致相同
8. >>=
算术右移和分配运算符。
示例:
c >>= 2与c = c >> 2大致相同
9. >>>=
逻辑右移和分配运算符。
示例:
c >>>= 2与c = c >>> 2大致相同
10. &=
按位和分配运算符。
示例:
c &= 2与c = c & 2大致相同
11. |=
按位或分配运算符。
示例:
c |= 2与c = c | 2大致相同
12. ^=
按位独占或分配运算符。
示例:
c ^= 2与c = c ^ 2大致相同