作业运算符( - 和)
这些运算符的左手操作数必须是非 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
大致相同