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) → 会抛异常

 

🧠 快速记忆口诀(中文版)

括号调用最高明,后增前增减负型! 乘除余分比位移,比完等异逻辑行, 条件赋值右边请。

posted @ 2025-09-07 01:11  x-Author  阅读(324)  评论(0)    收藏  举报