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 |
|| |
左到右 |
条件 |
?: |
从右到左 |
赋值 |
= += -= *= /= %= >>= <<= &= ^= |= |
从右到左 |
逗号 |
, |
左到右 |