答案是Java逻辑运算符包括&&、||和!,用于组合布尔表达式;&&和||支持短路求值,可避免空指针异常;使用括号明确优先级能提升代码可读性。

在Java中,逻辑运算符用于组合多个布尔表达式,从而实现复杂的条件判断。掌握这些运算符的使用技巧,能让你写出更清晰、高效的条件控制代码。
1. 常见逻辑运算符及其作用
Java提供了三种主要的逻辑运算符:
- &&(逻辑与):当左右两个操作数都为true时,结果为true。支持短路求值,即左边为false时,右边不会执行。
- ||(逻辑或):只要有一个操作数为true,结果就为true。同样支持短路,左边为true时跳过右边。
- !(逻辑非):对一个布尔值取反,true变false,false变true。
例如:
boolean a = true;boolean b = false;
System.out.println(a && !b); // 输出 true
System.out.println(a || b); // 输出 true
2. 利用短路特性避免运行时异常
短路求值不仅是性能优化手段,更是防止错误的重要技巧。
立即学习“Java免费学习笔记(深入)”;
比如在判断对象是否为空后再调用其方法:
String str = null;if (str != null && str.length() > 0) {
System.out.println("字符串非空");
}
这里如果str为null,&&的左边为false,右边不会执行,避免了NullPointerException。若换成&,则两边都会计算,可能导致异常。
3. 合理组合条件提升可读性
多个条件组合时,建议使用括号明确优先级,提高代码可读性。
例如判断成绩是否在优秀区间:
int score = 85;if ((score >= 80) && (score System.out.println("成绩优秀");
}
即使逻辑优先级正确,加括号也能让他人快速理解你的意图。
4. 注意&和|在布尔上下文中的非短路行为
&和|也可用于布尔运算,但它们不短路。也就是说,无论左边结果如何,右边总会被计算。
这在某些特定场景有用,比如需要确保某个方法一定被执行:
boolean result = validateInput() & logAttempt(); // 两个方法都会执行但大多数情况下推荐使用&&和||,更安全且符合常规预期。
基本上就这些。熟练运用逻辑运算符,结合实际业务设计条件判断,能让代码更健壮、易维护。关键在于理解短路机制和合理组织表达式结构。










