java逻辑运算符&&和||具有短路特性,即左侧操作数能确定表达式结果时,右侧操作数不执行,从而避免空指针异常、跳过方法调用、防止副作用发生,并提升性能。

Java 逻辑运算符的短路特性是面试中高频出现的知识点,考法通常不直接问定义,而是通过代码执行结果、异常分析、性能判断或实际场景设计来考察理解深度。
逻辑运算符短路特性是什么
短路特性指:当左侧操作数已能确定整个表达式结果时,右侧操作数不再执行。这不仅影响程序行为,还关系到异常是否抛出、方法是否调用、资源是否消耗。
常见面试题类型与应对要点
-
异常规避类题目
考察对&&和||短路行为的实际应用能力。
典型代码:String username = null; if (username != null && !username.isEmpty()) { ... }面试官会问:为什么不能用
&?如果换成&会怎样?
关键回答点:-
&&左侧为false(username != null不成立),右侧!username.isEmpty()不执行,避免空指针异常; -
&无短路,右侧仍会执行,触发NullPointerException。
-
-
方法调用验证类题目
考察是否真正理解“右侧不执行”的含义。
示例:boolean a = false; boolean b = methodA() && methodB(); // methodB() 不会被调用
面试官可能追问:
methodA()返回true,methodB()是否一定执行?
回答需明确:仅当methodA()返回true时,methodB()才执行;否则跳过——这是&&的核心价值。 -
对比辨析类题目(& vs &&,| vs ||)
常见陷阱是混淆逻辑运算符与按位运算符的适用场景。
要点总结:运算符 操作数类型 是否短路 典型用途 && boolean 是 条件组合判断(如登录校验、参数检查) & boolean 或整数 否 按位运算(如掩码处理);或需强制两边都执行的布尔逻辑 || boolean 是 兜底逻辑(如 `value != null || defaultValue()`) | boolean 或整数 否 按位或;或要求右侧始终执行的特殊逻辑 -
执行顺序与副作用题目
考察对“表达式求值时机”的敏感度。
例如:int i = 0; boolean result = false && (i++ > 0); System.out.println(i); // 输出 0,因为 i++ 没执行
若换成
&,i++会执行,输出变为 1。
面试中常结合自增、日志打印、数据库查询等有副作用的操作来设问。
一句话总结关键得分点
短路不是语法糖,而是运行时行为控制机制:它决定哪些代码根本不会走到。能否正确预判执行路径、规避异常、减少无效计算,才是面试官想看到的能力。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











