在Java里逻辑运算符有哪些_布尔表达式解析

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")) —— 管理员无需再查权限
  • |替代||会强制计算两边,一般不用于布尔逻辑判断

逻辑非(!):对单个布尔值取反

一元运算符,优先级高,常用于反转条件语义,增强可读性。

  • if (!list.isEmpty())if (list.size(

    ) > 0)
    更直观
  • 注意:不能作用于非布尔类型,如!5!"abc"在Java中编译不通过

布尔表达式解析的关键点

布尔表达式是由变量、字面量(true/false)、关系运算符(==>等)和逻辑运算符组成的、最终结果为boolean的表达式。

  • 关系运算(如a == bx )先算出truefalse,再参与逻辑运算
  • 运算符优先级:! > && > ||;混用时建议加括号明确意图,例如:!a && (b || c)
  • 避免复杂嵌套,过长的布尔表达式建议拆解为带语义的布尔变量,提升可读性与可维护性