java中逻辑非运算符是!,用于对布尔表达式取反;它是一元运算符,仅作用于boolean类型或返回boolean的表达式,不可用于数字、字符串或对象,需注意null陷阱及与位非运算符~的区别。

Java 中的逻辑非运算符是 !,用来对一个布尔表达式取反,即把 true 变成 false,false 变成 true。
逻辑非运算符的基本用法
它是一元运算符,只能作用于布尔类型(boolean)或返回布尔值的表达式。不能直接对数字、字符串或对象使用,否则编译报错。
-
!true→false -
!false→true -
!(5 > 3)→false(因为5 > 3是true,取反后为false) -
!(x == 10)→ 等价于x != 10
常用于 if 条件判断中取反
实际开发中,经常用 ! 简化“不满足某条件”的写法,避免嵌套或冗余逻辑。
- 代替
== false:if (!isValid)比if (isValid == false)更简洁清晰 - 否定方法调用结果:
if (!list.isEmpty())表示“非空时执行” - 组合多个条件:
if (!(age >= 18 && hasID))表示“不同时满足成年且有证件”
注意空指针与包装类的陷阱
对可能为 null 的 Boolean 包装类型直接取反会抛出 NullPointerException。
- 错误写法:
Boolean flag = null; if (!flag) { ... }→ 运行时报空指针 - 安全写法:先判空,再取反,例如
if (flag != null && !flag)或使用Objects.equals(flag, Boolean.FALSE)
和位非运算符 ~ 的区别
别把逻辑非 ! 和按位取反 ~ 混淆:
-
!只接受布尔值,结果是布尔值 -
~是整数位运算符,对二进制每一位取反(如~5是-6),不能用于boolean
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











