Java提供了一套丰富的运算符来操作变量。我们可以把所有的Java运算符分成以下几组:
算术运算符
运算符 | 描述 | 示例 |
---|
+ | 加法 - 对运算符的两侧的值增加 | A + B = 30 |
- | 减法- 从左操作数减去右操作数 | A - B = -10 |
* | 乘法- 相乘操作符两侧值 | A * B = 200 |
/ | 除法 - 由右侧操作数除以左侧操作数 | B / A = 2 |
% | 模数- 由右侧操作数除以左侧操作数的余数 | B % A = 0 |
++ | 增量- 操作数的值增加1 | B++ = 21 |
-- | 递减 - 操作数的值减小1 | B-- = 19 |
关系运算符
运算符 | 描述 | 示例 |
---|
== | 检查两个操作数的值是否相等,如果是,则条件为true。 | (A == B) 不为 true. |
!= | 检查两个操作数的值是否相等,如果值不相等,则条件为true。 | (A != B) 为 true. |
> | 检查左边的操作数的值是否大于右操作数的值,如果是,则条件为true。 | (A > B) 不为 true. |
< | 检查左边的操作数的值是否小于右操作数的值,如果是,则条件为true。 | (A < B) 为 true. |
>= | 检查左边的操作数的值是否大于或等于右操作数的值,如果是,则条件为true。 | (A >= B) 不为 true. |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件变为true。 | (A <= B) 为 true. |
逻辑运算符:
运算符 | 描述 | 示例 |
---|
&& | 所谓逻辑与运算符。如果两个操作数是非零那么条件为true。 | (A && B) 为 false. |
|| | 所谓逻辑OR运算符。如果任何两个操作数都非零那么条件变为true。 | (A || B) 为 true. |
! | 所谓逻辑非运算符。使用反转其操作数的逻辑状态。如果条件为true,那么逻辑非运算结果为false。 | !(A && B) 为 true. |
位运算符:
运算符 | 描述 | 示例 |
---|
& | 二进制与(AND)操作符拷贝位的结果,如果它存在于两个操作数。 | (A & B) = 12 也就是 0000 1100 |
| | 二进制或(OR)操作符拷贝位,如果它存在一个操作数中。 | (A | B) = 61 也就是 0011 1101 |
^ | 二进制异或操作符拷贝,如果它被设置在一个操作数而不是两个比特。 | (A ^ B) = 49 也就是 0011 0001 |
~ | 二进制的补运算符是一元的,具有“翻转”位的效应。 | (~A ) = -61 也就是 1100 0011 以2的补码形式,由于它是一个带符号二进制数。 |
<< | 二进制向左移位运算符。左边的操作数的值由右操作数指定的位数向左移动。 | A << 2 = 240 也就是 1111 0000 |
>> | 二进制向右移位运算符。左边的操作数的值是通过右操作数指定的位数向右移动。 | A >> 2 = 15 也就是 1111 |
>>> | 右移补零运算符。左边的操作数的值是通过右操作数指定的位数向右移动,并转移值以零填充。 | A >>>2 = 15 也就是 0000 1111 |
赋值和复合赋值运算符
运算符 | 描述 | 示例 |
---|
= | 简单的赋值操作符,赋值是从右侧的操作数到左侧的操作数 | C = A + B 将分配 A + B 的值到 C |
+= | 加法与赋值运算符,它将右操作数加上左操作数并分配结果左操作数 | C += A 相当于 C = C + A |
-= | 减法并赋值运算符,从左边的操作数减去右操作数并分配结果给左操作数 | C -= A 相当于 C = C - A |
*= | 乘法与赋值运算符,左操作数乘以右操作数并分配结果给左操作数 | C *= A 相当于 C = C * A |
/= | 除法与赋值运算符, 左操作数除以右操作数并分配结果给左操作数 | C /= A 相当于 C = C / A |
%= | 模数与赋值运算符, 这需要使用模量两个操作数并分配结果左操作数 | C %= A 相当于 C = C % A |
<<= | 左移位并赋值运算符 | C <<= 2 类似于C = C << 2 |
>>= | 右移位并赋值运算符 | C >>= 2 类似于 C = C >> 2 |
&= | 按位与赋值运算符 | C &= 2 类似于 C = C & 2 |
^= | 按位异或并赋值运算符 | C ^= 2 类似于 C = C ^ 2 |
|= | 按位或并赋值运算符 | C |= 2 类似于 C = C | 2 |
Java运算符的优先级
分类 | 操作符 | 关联性 |
---|
后缀 | () [] . (点操作符) | 左到右 |
一元 | ++ - - ! ~ | 从右到左 |
乘法 | * / % | 左到右 |
加法 | + - | 左到右 |
移动 | >> >>> << | 左到右 |
关系 | > >= < <= | 左到右 |
相等 | == != | 左到右 |
位AND | & | 左到右 |
位XOR | ^ | 左到右 |
位 OR | | | 左到右 |
逻辑 AND | && | 左到右 |
逻辑OR | || | 左到右 |
条件 | ?: | 从右到左 |
赋值 | = += -= *= /= %= >>= <<= &= ^= |= | 从右到左 |
逗号 | , | 左到右 |