Java有3个逻辑运算符:&&(逻辑与,短路)、||(逻辑或,短路)、!(逻辑非);均操作布尔类型,返回布尔值;&&要求两边为true才返回true,||只要一边为true即返回true,!对布尔值取反。

Java中的逻辑运算符主要用于组合或反转布尔表达式的真假值,共3个核心运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)。它们操作的对象必须是布尔类型(boolean),返回结果也是boolean。
逻辑与(&&):两边都为true才返回true
短路特性:如果左边表达式为false,右边不会执行,直接返回false。适合用于安全检查。
-
if (obj != null && obj.getName().length() > 0)—— 先判空再调用方法,避免空指针 - 若写成
&(按位与),则无短路效果,右边总会执行,可能抛异常
逻辑或(||):两边只要有一个为true就返回true
同样具备短路特性:左边为true时,跳过右边表达式。
-
if (user.isAdmin() || user.hasPermission("edit"))—— 管理员无需再查权限 - 用
|替代||会强制计算两边,一般不用于布尔逻辑判断
逻辑非(!):对单个布尔值取反
一元运算符,优先级高,常用于反转条件语义,增强可读性。
立即学习“Java免费学习笔记(深入)”;
-
if (!list.isEmpty())比if (list.size() > 0)更直观 - 注意:不能作用于非布尔类型,如
!5或!"abc"在Java中编译不通过
布尔表达式解析的关键点
布尔表达式是由变量、字面量(true/false)、关系运算符(==、>等)和逻辑运算符组成的、最终结果为boolean的表达式。
- 关系运算(如
a == b、x )先算出true或false,再参与逻辑运算 - 运算符优先级:
!>&&>||;混用时建议加括号明确意图,例如:!a && (b || c) - 避免复杂嵌套,过长的布尔表达式建议拆解为带语义的布尔变量,提升可读性与可维护性










