掌握Java运算符优先级应以口诀“括号单目乘除加减,移位关系相等,与异或或,短路三目赋值”为主干,辅以+的双重身份和==/equals区别两个特例,并通过实测验证强化理解。

掌握 Java 运算符优先级,关键不是死记硬背整张表,而是用口诀锚定主干,再靠少量高频规则补全细节。
核心口诀:括号单目乘除加减,移位关系相等,与异或或,短路三目赋值
这句口诀按优先级从高到低排列,每组对应一类运算符,读起来顺口,也贴合真实顺序:
- 括号:()、[]、.、new、:: —— 最高优先级,无例外
- 单目:++ --(后置)、++ --(前置)、+ - ! ~ (type) —— 注意后置比前置结合性略高,但同属“单目”大类
- 乘除加减:* / % 在 + - 之前;字符串拼接 + 也归在此层,但遇到字符串会触发类型转换
- 移位:> >>> —— 比关系运算符高,常被误认为“和加减差不多”,其实更高
- 关系: >= instanceof —— 注意 == != 是下一档(相等),不和它们混在一起
- 相等:== != —— 引用比较陷阱多,优先级低于关系但高于逻辑与
- 与异或或:& ^ | —— 按位运算,左结合,注意不是短路的
- 短路:&& || —— 优先级明显低于 & |,且有跳过求值特性
- 三目:? : —— 右结合,唯一一个从右往左算的中缀运算符
- 赋值:= += -= 等 —— 全部最低,且右结合(a = b = 3 合法)
两个必记特例,避免典型翻车
光有口诀还不够,这两个细节90%的初学者会踩坑:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
- + 的双重身份:既作加法又作字符串拼接,且拼接优先级和加法相同;"a" + 3 + 4 → "a34",而 "a" + (3 + 4) → "a7"
- == 和 equals 的混淆不是优先级问题,但常被误判:优先级再高,"str == new String("str")" 仍是 false;该用 equals 时别指望调高优先级能救场
动手验证比默写更有效
每次拿不准,就写一行最简表达式跑一下:
- System.out.println(3 + 4 * 2); → 验证乘高于加
- System.out.println(true || false && false); → 验证 && 高于 ||
- System.out.println(false || true ? 1 : 0); → 验证 || 低于 ?:(结果是 1,不是 0)
实测三次,比背十遍口诀印象更深。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










