运算符用于对单个操作数或两个操作数执行运算。 Java中的运算符可以分为以下几类:
- 算术运算符
- 赋值运算符
- 比较运算符
- 自增/自减运算符
- 逻辑运算符
- 按位运算符
- 其他运算符
Java 算术运算符
算术运算符用于对两个操作数执行算术运算。
操作员 | 名称 | 描述 |
---|---|---|
+ | 加法 | 添加两个值 |
- | 减法 | 一个值减去另一个值 |
* | 乘法 | 两个值相乘 |
/ | 除法 | 将一个值除以另一个值 |
% | 取模 | 返回除法运算的余数 |
示例
Java 赋值运算符
赋值运算符用于将右侧表达式的值分配给左侧操作数。
运算符 | 表达式 | 相当于 | 示例 |
---|---|---|---|
= | a = 5 | a = 5 | 示例 |
+= | a += b | a = a + b | |
-= | a -= b | a = a - b | |
*= | a *= b | a = a * b | |
/= | a /= b | a = a / b | |
%= | a %= b | a = a % b | |
&= | a &= b | a = a & b | 更多信息 |
|= | a |= b | a = a | b | 更多信息 |
^= | a ^= b | a = a ^ b | 更多信息 |
>>= | a>>=b | a = a>>> b | 更多信息 |
>>>= | a >>>= b | a = a >>> b | |
<<= | a <<= b | a = a << b | 更多信息 |
注意: >>>= 与 >>= 运算符类似,只不过左侧移入的位始终是零。
Java 比较运算符
比较运算符用于比较两个操作数的值。当值匹配时返回 true,当值不匹配时返回 false。
运算符 | 描述 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
示例
Java 自增/自减运算符
自增和自减运算符用于增加和减少变量的值。
Java 逻辑运算符
逻辑运算符用于组合两个或多个条件。
操作员 | 名称 | 描述 |
---|---|---|
&& | AND | 所有条件成立时返回 true |
|| | OR | 任意条件成立时返回true |
! | NOT | 返回相反的布尔结果 |
更多信息
Java 位运算符
按位运算符用于对两个操作数执行按位运算。
操作员 | 名称 | 描述 | 更多信息 |
---|---|---|---|
& | AND | 如果两个操作数中同一位置的两个位均为 1,则返回 1,否则返回 0 | 更多信息 |
| | OR | 如果两个操作数中同一位置的两个位之一为 1,则返回 1,否则返回 0 | 更多信息 |
^ | XOR | 如果两个操作数中同一位置的两位中只有一位为 1,则返回 1,否则返回 0 | 更多信息 |
~ | NOT | 反转所有位 | 更多信息 |
>> | 右移 | 左操作数向右移动右操作数中存在的位数 | 更多信息 |
>>> | 右移零 | 此运算符就像 >>运算符,但左侧移入的位始终为零。 | |
<< | 左移 | 左操作数值向左移动右操作数中存在的位数 | 更多信息 |
Java 杂项运算符
下表描述了 Java 支持的其他运算符:
运算符 | 描述 |
---|---|
instanceof 运算符 | 如果对象是特定类型的实例,则返回 true (类、子类或接口),否则为 false。 |
三元运算符 (?:) | 根据以下条件返回两个值之一布尔表达式的值。 |
Java 运算符优先级
运算符优先级(运算顺序)是一组规则,反映了有关哪些运算符的约定为了计算给定的表达式首先执行的过程。
例如,乘法的优先级高于加法。因此,表达式 1 + 2 × 3 被解释为具有值 1 + (2 × 3) = 7,而不是 (1 + 2) × 3 = 9。当表达式中使用指数时,它优先于加法和乘法。因此 3 + 52 = 28 和 3 × 52 = 75。
下表列出了 Java 运算符的优先级和结合性。运算符按优先级降序从上到下列出。优先级较高的运算符先于优先级相对较低的运算符进行计算。当运算符具有相同优先级时,运算符的结合性决定了运算的执行顺序。
优先级 | 运算符 | 描述 | 关联性 |
---|---|---|---|
16 | . | 对象成员访问 | 从左到右 |
[ ] | 数组元素访问 | ||
( ) | 括号 | ||
15 | a++ a-- | 后缀递增,后缀递减 | NA |
14 | ! | 逻辑非 | 从右到左 |
~ | 按位取反 | ||
+a -a | 一元加,一元负 | ||
++a --a | 前缀递增,前缀递减 | ||
13 | ( ) | 演员表 | |
new | 创建对象 | ||
12 | * / % | 乘法、除法、求余 | 从左到右 |
11 | + - | 加法、减法、字符串连接 | |
10 | << >>> >>> | 按位左移、右移和无符号右移 | |
9 | < <= > >= | 小于、小于等于、大于、大于等于 | |
instanceof | 对象实例 | ||
8 | == != | 平等、不平等 | |
7 | & | 按位与 | |
6 | ^ | 按位异或 | |
5 | | | 按位或 | |
4 | && | 逻辑与 | |
3 | || | 逻辑或 | |
2 | a?b:c | 条件(三元)运算符 | 从右到左 |
1 | = | 直接赋值 | |
+= -= *= /= %= | 按和、差、积、商和余数进行复合赋值 | ||
<<= >>= >>>= | 按位左移、右移和无符号右移的复合赋值 | ||
&= ^= |= | 按位 AND、XOR 和 OR 进行复合赋值 |