验证短路行为最直观的方法是用带System.out.println()的辅助方法或自增变量观察执行痕迹:&&左侧为false或||左侧为true时,右侧不执行;还可通过obj!=null&&obj.getValue()>10验证空指针防护。

用带打印的方法验证短路行为
最直观的方式是写几个带 System.out.println() 的辅助方法,每个方法返回布尔值并输出执行痕迹。比如定义 test1()、test2()、test3(),分别打印调用信息和返回结果。然后在 && 或 || 表达式中依次调用它们。如果后边的方法没被打印,就说明发生了短路。
用自增变量观察是否执行
声明一个整型变量(如 int n = 5),在逻辑表达式右侧写 n++ > 0 这类带副作用的子表达式。搭配左侧已知为 false 的条件使用 &&,或左侧为 true 时使用 ||。运行后检查 n 的最终值:若没变,说明右侧没执行,短路生效;若变了,说明没短路(比如误用了 & 或 |)。
- 测试 && 短路:boolean b = false && (n++ > 0); → n 保持原值
- 测试 || 短路:boolean b = true || (n++ > 0); → n 保持原值
- 对比非短路 &:boolean b = false & (n++ > 0); → n 会加 1
模拟空指针防护场景
真实开发中短路最常用在避免 NullPointerException。例如:if (obj != null && obj.getValue() > 10)。可以手动构造 obj = null,运行看是否抛异常。不抛,说明 && 成功跳过了 obj.getValue() 调用;若换成 &,就会触发空指针。
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
组合多个条件看执行顺序
写一个含三段判断的表达式,如 a ,给 a、b、c 设不同值。例如设 a = 2(使第一项为 false),观察 b 和 c 对应的变量或方法是否被访问。只要 b、c 没变化或没打印,就确认短路发生在第一个 false 处。
立即学习“Java免费学习笔记(深入)”;

















