java运算符优先级分7大逻辑区块:括号与单目最高,new和类型转换次之,接着是算术核心、移位、关系比较等,同级按左结合执行。

Java 运算符优先级决定表达式中各运算符的执行顺序,**优先级高的先计算,同级按结合性(通常是左结合)依次执行**。记全表格不现实,关键是理解分层结构 + 掌握高频组合 + 熟悉易错点。
核心分层:7 大优先级区块(从高到低)
把 15 级优先级压缩为 7 组逻辑块,更符合实际编码习惯:
- 括号与单目运算:()、[]、.、++/--(前置)、+/-(正负号)、~、! —— 最高,且多数右结合
- 创建与类型转换:new、(type) —— 易被忽略,但强制类型转换优先级高于乘除
- 算术核心:* / %(同级左结合)→ + -(同级左结合)—— 注意字符串 + 是加法,不是连接符优先级
- 移位操作:> >>> —— 比关系运算符高,常被误认为“和 + - 一样低”
- 关系比较: >= instanceof —— 注意 instanceof 优先级和 不是最低
- 逻辑与位运算:== !=(等于类)→ &(位与)→ ^(异或)→ |(位或)→ &&(短路与)→ ||(短路或)
- 赋值类:= += -= *= /= %= &= ^= |= >= >>>= —— 全部右结合,优先级最低
高频易错组合与避坑写法
这些场景出错最多,建议直接加括号提升可读性与安全性:
-
位运算混用:
a & b == c实际等价于a & (b == c)(因为 == 优先级高于 &),应写(a & b) == c -
移位 + 算术:
a + b 是 <code>a + (b ,不是 <code>(a + b) -
逻辑与赋值:
a = b && c || d等价于a = ((b && c) || d),但语义模糊,建议拆成 if 或加括号 -
字符串拼接陷阱:
"x" + a == b→ 先算"x" + a(字符串),再与 b 比较(永远 false),应写"x" + (a == b)
实用记忆技巧:三句话口诀
不用背数字,靠逻辑锚点快速反应:
- “括号、点、new、取反,谁都不让” —— 所有改变操作数本身或访问结构的都最高
- “算术比关系快,关系比逻辑快,逻辑比赋值快” —— 抓住主干四层,覆盖 90% 表达式
- “位运算是个夹心层:比算术低,比关系高” ——
验证与调试小建议
遇到不确定的表达式,别猜,用代码验证:
- 用
javap -c查看字节码,真实执行顺序一目了然 - 在 IDE 中将光标停在表达式上,IntelliJ/VS Code 通常会显示隐式括号提示
- 复杂布尔表达式一律拆成变量:
boolean isEligible = (age > 18) && (score >= 60);
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











