重点是理解运算符的行为逻辑、使用场景和易错点:自增自减盯执行顺序,整数除法与取模注意负数结果,+=隐式强转而+需显式转换,&&/||短路而&/|不短路,==比值或地址、字符串用equals,优先级靠括号明确,位运算重本质。

不用硬背思维导图,重点是理解运算符的**行为逻辑、使用场景和易错点**。面试官考运算符,很少让你复述定义,更多是看你能不能准确预判结果、解释为什么、避开常见坑。
算术与自增自减:盯住执行顺序和类型
这是高频陷阱区。比如 i++ + ++i 或 a++ + a 这类表达式,关键不是记住答案,而是清楚每一步“什么时候取值、什么时候加1”。
- 前++(++i):先加1,再参与整个表达式运算
- 后++(i++):先用当前值参与运算,语句结束(遇到分号)后再加1
- 整数除法
/和取模%对负数的结果要验证:Java 中-7 % 3 == -1,不是 2 - 字面量带下划线(如
1_000_000)可读性强,但不能开头、结尾或连续两个下划线
赋值类运算符:注意隐式类型转换限制
+= 看似简单,但背后有自动类型提升机制,容易忽略编译错误。
-
short s = 1; s += 1;✅ 合法——+=会自动强转回原类型 -
short s = 1; s = s + 1;❌ 编译失败——s + 1是 int 类型,不能直接赋给 short -
char c = 'a'; c += 32;✅ 可行;但c = c + 32;❌ 报错,同理
关系与逻辑:区分 &&/|| 和 &/|
面试常问“短路”意义,本质是**是否跳过右侧计算**。
立即学习“Java免费学习笔记(深入)”;
-
if (obj != null && obj.toString().length() > 0)—— 安全,左侧为 false 就不执行右侧,避免空指针 -
if (obj != null & obj.toString().length() > 0)—— 危险,即使左侧为 false,右侧仍会执行,可能抛 NPE -
==比较基本类型看值,引用类型看地址;字符串必须用.equals()
优先级与括号:别靠死记,靠拆解习惯
运算符优先级表没必要背全,实际编码中用括号明确意图更安全,也更体现工程意识。
- 遇到复杂表达式(如
a + b * c > d || e && f),立刻按优先级分组:((a + (b * c)) > d) || (e && f) - 三元运算符
?:优先级较低,嵌套时务必加括号,否则易出错 - 位运算符(
&,|,^,~,<<,>>,>>>)在权限控制、状态标记等场景出现,理解其二进制操作本质比记符号更重要
真正有效的准备方式是:选 5–8 个典型表达式(比如含自增、混合类型、短路逻辑的),手写推演过程,再用 IDE 运行验证。错一次,就搞懂一次底层逻辑。这样记下来的,才是面试能讲清楚的“活知识”。


















