Java逻辑运算符&&、||、!用于组合布尔表达式,&&具短路特性(左假则右不执行),复杂条件需加括号明确逻辑优先级与执行顺序。

Java 中的逻辑运算符 &&(逻辑与)、||(逻辑或)、!(逻辑非)用于组合多个布尔表达式,形成更灵活、贴近业务逻辑的复合条件判断。
用 && 实现“同时满足”的条件
当需要多个条件都为 true 时才执行某段代码,就用 &&。它具有短路特性:左边为 false 时,右边表达式不会执行,避免不必要的计算或潜在异常。
- 例如判断一个整数是否在区间 [10, 100] 内:
if (num >= 10 && num - 再如检查对象非空且属性有效:
if (user != null && user.isActive())—— 如果user为null,就不会调用isActive(),防止空指针异常
用 || 实现“满足其一即可”的条件
|| 表示只要有一个操作数为 true,整个表达式就为 true。同样具备短路性:左边为 true 时,右边不再计算。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 比如登录验证允许邮箱或手机号任一方式:
if (email.equals(input) || phone.equals(input)) - 又如防御性检查:
if (list == null || list.isEmpty())—— 若list为null,就不会调用isEmpty()
用 ! 对布尔结果取反,增强可读性
! 是一元运算符,作用于单个布尔表达式,常用于将“否定逻辑”转化为正向表述,让条件更自然。
立即学习“Java免费学习笔记(深入)”;
- 代替冗长的不等式:
if (!user.isBlocked())比if (user.getBlocked() == false)更简洁清晰 - 配合 && 和 || 使用时注意优先级:
!a && b等价于(!a) && b,但!(a && b)表示整体取反,语义完全不同 - 嵌套取反要谨慎:
!!isValid()虽合法,但无必要,直接写isValid()即可
组合使用时注意括号和优先级
逻辑运算符有默认优先级:! > && > ||。复杂条件中建议显式加括号,既明确意图,也避免出错。
- 错误示例(易误解):
if (a || b && c)实际等价于a || (b && c),但可读性差 - 推荐写法:
if ((a || b) && c)或if (a || (b && c)),根据实际逻辑意图加括号 - 涉及方法调用时,括号还能控制执行顺序,尤其在依赖短路行为的场景下很关键

















