重点是通过真题驱动练习理解行为差异和边界情况,而非死记规则;聚焦自增/自减陷阱、短路逻辑、位运算巧用、业务场景应用四类高频题,并错题归因到优先级、类型提升、副作用等具体认知漏洞。

直接上手练,重点不是背规则,而是理解行为差异和边界情况。面试官常考的不是“& 和 && 有什么区别”,而是“这段代码输出什么?为什么?”——所以得靠真题驱动练习。
紧扣高频真题类型练
别泛泛刷运算符分类,盯住四类高频题:
-
自增/自减陷阱题:比如
int i = 1; System.out.println(i++ + ++i);,必须分清执行顺序和中间值变化; -
短路 vs 非短路逻辑:像
if (str != null && str.length() > 0)换成 & 会空指针,要能说出后果和原理; -
位运算巧用场景:交换两个 int 值不用临时变量(
a ^= b; b ^= a; a ^= b;),或快速乘除 2 的幂(n 等价于 <code>n * 8); -
隐式类型转换坑点:如
byte b = 10; b = b + 1;编译失败,而b += 1;可以,得明白 += 含自动强转。
写代码验证,别只看不敲
光读结论容易混淆,每个疑点都动手跑一遍:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 把
++i和i++放进循环、赋值、打印里组合测试,记录每行输出和变量最终值; - 用
&和&&分别构造左边为 false 的表达式,观察右边是否执行(加个System.out.println("here")最直观); - 对负数做位移(如
-8 >> 2)和无符号右移(-8 >>> 2),对比结果差异,理解符号位处理逻辑。
结合真实业务场景想
运算符不是孤立语法,它在实际代码中承担具体职责:
- 用
%判断奇偶、做数组下标循环取模(如环形缓冲区); - 用
|或^合并权限标志位(READ | WRITE),用&检查是否包含某权限(flags & READ != 0); - 三元运算符
condition ? a : b替代简单 if-else,但别嵌套三层以上,否则可读性反降。
错题归因,不只记答案
每次练错,问自己三个问题:
- 是记混了优先级(比如
!a && b || c的执行顺序)? - 是忽略了数据类型隐式提升(byte 相加变 int)?
- 是没意识到副作用(
func() && ++count中 count 是否自增取决于 func 返回值)?
把错误归到具体认知漏洞上,比抄十遍“&& 短路”有用得多。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










