Java基础:运算符

时间:2023-02-15 16:54:38

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