Java 编程中最全的运算符优先级表
Java 编程中最全的运算符优先级表,并附上常见错误与注意事项,帮助你在写代码时避免踩坑、提升效率。
🧮 Java 运算符优先级表(从高到低)
| 优先级 | 运算符 | 类型 | 结合方向 | 示例 |
|---|---|---|---|---|
| 1️⃣ | . () [] |
成员访问、方法调用、数组索引 | 左 → 右 | obj.method()、arr[0] |
| 2️⃣ | ++ -- (后缀) |
后置自增/自减 | 左 → 右 | a++ |
| 3️⃣ | ++ -- + - ~ ! (type) |
前缀操作符、强制类型转换 | 右 → 左 | ++a、(int)x |
| 4️⃣ | * / % |
乘除取模 | 左 → 右 | a * b |
| 5️⃣ | + - |
加减 | 左 → 右 | a + b |
| 6️⃣ | << >> >>> |
位移 | 左 → 右 | a << 2 |
| 7️⃣ | < <= > >= instanceof |
比较 | 左 → 右 | a < b |
| 8️⃣ | == != |
相等判断 | 左 → 右 | a == b |
| 9️⃣ | & |
按位与 | 左 → 右 | a & b |
| 🔟 | ^ |
按位异或 | 左 → 右 | a ^ b |
| 1️⃣1️⃣ | ` | 按位或 | `a b` | |
| 1️⃣2️⃣ | && |
逻辑与(短路) | 左 → 右 | a && b |
| 1️⃣3️⃣ | ?: |
三元运算符 | 右 → 左 | a > b ? a : b |
| 1️⃣4️⃣ | = += -= 等 |
赋值运算符 | 右 → 左 | a = b = 5 |
| 1️⃣5️⃣ | , |
逗号运算符 | 左 → 右 | a = 1, b = 2 |
⚠️ Java 运算符常见错误与注意事项
1. 赋值结合方向误解
-
错误:
a = b = 5;以为是先赋值给a -
实际:右结合,等价于
a = (b = 5);
2. 逻辑与位运算混淆
-
错误:
if (x & y)用位运算判断布尔值 -
正确:使用逻辑运算
if (x && y),避免非短路逻辑导致异常
3. 字符串拼接优先级
-
示例:
"Result: " + 2 + 3→ 输出"Result: 23" -
正确方式:
"Result: " + (2 + 3)→ 输出"Result: 5"
4. 三元运算符嵌套混乱
-
错误:
a > b ? a > c ? a : c : b可读性差 -
建议:使用括号明确结构,或改用
if-else
5. 除法运算截断
-
示例:
5 / 2 = 2(整数除法) -
正确:
5 / 2.0 = 2.5(需转为浮点)
6. 强制类型转换优先级
-
示例:
(int) a / b是先转再除 -
注意:
int(a / b)是先除再转(语法错误)
7. 短路逻辑避免空指针
-
推荐写法:
if (obj != null && obj.method()) -
避免:
if (obj.method() && obj != null)→ 会抛异常
🧠 快速记忆口诀(中文版)
括号调用最高明,后增前增减负型! 乘除余分比位移,比完等异逻辑行, 条件赋值右边请。

浙公网安备 33010602011771号