java运算符掌握靠理解优先级、结合性与特殊行为三主线:优先级决定计算顺序,结合性解决同级运算方向,特殊行为如短路、自增/自减、位与逻辑运算差异需单独记忆。

Java 运算符的运算规则不是靠死记硬背,而是靠理解优先级、结合性与常见陷阱来掌握。面试常考的不是让你默写全部15级优先级,而是判断表达式结果、识别短路行为、区分++/--前置后置、搞清位运算与逻辑运算差异。
抓住三根主线:优先级、结合性、特殊行为
所有运算符规则都围绕这三点展开:
-
优先级决定谁先算:比如
a + b * c中,*比+优先级高,等价于a + (b * c);但==和&&之间差了4级,所以a == b && c > d不会因为&&左结合就先算b && c -
结合性解决同级怎么算:大多数双目运算符是左结合(如
1 - 2 - 3→(1 - 2) - 3),赋值类(=,+=)和三元运算符(? :)是右结合(a = b = c等价于a = (b = c)) -
特殊行为要单独记:逻辑运算符
&&/||短路、&/|不短路;++i先加后用,i++先用后加;==对基本类型比值,对引用类型比地址(除非重写了equals)
高频易错点,按场景归类记
面试最爱在这些地方设坑:
-
自增/自减混合表达式:例如
int i = 1; int j = i++ + ++i;→ 结果是j=4, i=3。口诀:“右到左看操作数,每个变量只读一次值,再统一更新” -
位运算与逻辑运算混淆:
&既能当“按位与”也能当“布尔与”(不短路),&&只能布尔且短路。面试可能故意写if (a != null & a.length > 0)——这里用&会空指针,必须用&& -
移位运算符号方向别反:
>>算术右移(补符号位),>>>无符号右移(补0);左移永远补0。负数移位容易出错,比如 <code>-8 >> 1是-4,不是4
用一张简表锚定核心层级
不必记全部15级,重点盯住这7组(从高到低):
- 括号
()、后置++/--、对象创建new - 前置
++/--、+/-(正负号)、!、~ - 乘除模
*/% - 加减
+-(含字符串拼接) - 移位
<code>>>>>> - 关系
<code> <code>>>=,以及instanceof - 相等
==!=、位与&、位异或^、位或|、逻辑与&&、逻辑或||、三元? :、赋值=等
其中 && 和 || 优先级低于 &、^、|,这是很多人写条件时加错括号的根源(如 a & b == 0 || c 实际是 a & (b == 0) || c)。
动手比默写更有效
每天花5分钟写几行测试代码,比看十遍表格管用:
- 写
System.out.println(true || false && false);看输出,再改成|和&对比 - 用
Integer.valueOf(127)和128做==判断,理解缓存机制对比较的影响 - 故意把
&&写成&在 if 里,观察右侧表达式是否执行(比如加日志)
运行结果印证规则,错误反馈比任何口诀都记得牢。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











