优先级 运算符类别 运算符(按优先级降序排列) 结合性 1 括号 () [] .(方法调用) 左到右 2 一元运算符 ++(后缀) --(后缀) 左到右 3 一元运算符 ++(前缀) --(前缀) +(正) -(负) ! ~ 右到左 4 乘除模 * / % 左到右 5 加减 + - 左到右 5 移位 << >> >>> 左到右 6 关系 < > <= >= instanceof 左到右 7 相等 == != 左到右 8 位与 & 左到右 9 位异或 ^ 左到右 10 位或 ` ` 左到右 11 逻辑与 && 左到右 12 逻辑或 ` ` 左到右 13 条件 ?: 右到左 14 赋值 = += -= *= /= %= <<= >>= >>>= &= ^= ` =` 右到左 15 逗号 , java的运算优先级对吗
时间: 2025-07-06 19:55:14 浏览: 27
Java 的运算符优先级表确实遵循了一定的规则,并且在不同的参考资料中保持一致。以下是关于 Java 运算符优先级的一些核心要点:
### 1. **优先级顺序**
- 表格中的优先级从高到低排列,数字越小表示优先级越高[^1]。
- 括号 `()` 和数组索引 `[]` 属于最高优先级的操作,用于改变默认的计算顺序[^2]。
### 2. **结合性**
- 大多数运算符是从左到右结合的,例如加法和减法 `(a + b) - c` 中,先计算 `a + b`[^3]。
- 少数例外情况是从右到左结合,比如单目操作符 `-` 或赋值操作符 `=`[^4]。
### 3. **常见运算符解析**
#### 算术运算符
- 乘法 (`*`)、除法 (`/`) 和取模 (`%`) 的优先级高于加法 (`+`) 和减法 (`-`)[^1]。
- 示例代码如下:
```java
int result = 2 + 3 * 4;
System.out.println(result); // 输出 14, 因为先计算 3 * 4
```
#### 关系运算符
- `<`, `<=`, `>`, `>=` 的优先级低于算术运算符但高于等价运算符[^2]。
- 示例代码如下:
```java
boolean isTrue = (5 > 3 && 3 < 4);
System.out.println(isTrue); // 输出 true
```
#### 条件运算符
- `&&` 和 `||` 是短路逻辑运算符,具有较低的优先级。
- 三元运算符 `? :` 的优先级更低,需特别注意其结合方向是从右至左[^4]。
- 示例代码如下:
```java
int value = (true ? 1 : false ? 2 : 3);
System.out.println(value); // 输出 1
```
### 4. **实例验证**
考虑以下复杂表达式:
```java
int a = 10, b = 5, c = 2;
boolean flag = ((a + b) * c > 20 && !(b == c));
System.out.println(flag); // 输出 true
```
解释:
- 首先处理括号内的部分 `(a + b)`[^1]。
- 接着进行乘法运算 `(a + b) * c`[^2]。
- 然后比较大小 `(a + b) * c > 20`。
- 最终评估整个布尔表达式并返回结果[^4]。
综上所述,所提供的 Java 运算符优先级表是正确的,并能有效指导开发者理解复杂的表达式行为。
阅读全文
相关推荐

















