java运算符面试题重在理解行为差异与执行顺序,需掌握i++/++i赋值陷阱、&&与&区别、取模除法规则、“+”重载优先级、位运算实战及不用+实现加法等核心知识点。

Java运算符面试题不是靠死记硬背,关键在理解行为差异和执行顺序。练对方向,一道题能串起多个知识点。
抓高频易错点:i++ 和 ++i 的赋值陷阱
这是90%面试官必问的入口题,但很多人只记结论,不看执行过程。
- 写两段代码对比:
int i = 0; int a = i++;vsint i = 0; int a = ++i;,手动模拟JVM栈操作(取值→计算→赋值) - 重点练这个经典陷阱:
int i = 0; i = i++;输出是0——因为底层相当于先缓存原值、再自增、最后把缓存值写回 - 扩展到循环中:
for (int i = 0; i 和 <code>for (int i = 0; i 效果一样,但面试时要能说清“后缀++在本次循环体执行完才生效”
深挖短路特性:&& 和 & 的真实区别
不能只答“&&有短路,&没有”,要能现场写出验证代码并解释字节码逻辑。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 构造带副作用的表达式:
boolean a = false && method();vsboolean b = false & method();,其中method()打印日志——前者不打印,后者会执行 - 位运算符
&在布尔类型下也做逻辑与,但无短路;在整数类型下做按位与,这是同一符号不同语义,必须分场景说明 - 面试常考组合题:
if (x != null && x.getValue() > 0)为什么用&&?换成&可能触发空指针异常
动手验证取模和除法的边界行为
整数除法截断、负数取模符号跟随被除数,这些细节一写代码就露馅。
- 列6组测试:
10/3、-10/3、10%-3、-10%-3、10%3.0、-10%3,逐个运行并记录结果 - 记住口诀:“除法向零取整,取模符号看左边”——
-7 / 3 == -2,-7 % 3 == -1 - +号重载容易被忽略:字符串拼接优先级高于算术运算,
"a"+1+2结果是"a12",而"a"+(1+2)才是"a3"
用位运算还原真实场景
光背&|^~<code>>>>>>没用,得知道什么时候该用。
- 权限控制:用
int role = READ | WRITE;定义组合权限,判断用(role & READ) != 0 - 奇偶判断:
n & 1 == 1比n % 2 == 1更高效(尤其在底层或嵌入式) - 面试压轴题:不用
+实现两数相加(用^算无进位和,&左移算进位,循环直到进位为0)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










