Java中null的定义与表示
在Java中,null是一个特殊的值,表示一个空对象引用,当一个对象没有被赋值给任何引用变量时,它的值就是null,null可以用于表示变量不包含有效值的情况,或者表示该对象没有被初始化,在Java中,所有的引用类型(如类、接口、数组)都可以为null。
null的常用用法
1、声明变量并赋值为null
在声明一个引用类型的变量时,可以直接将其赋值为null。
Integer num = null; String str = null;
2、将其他对象赋值给null
可以将一个已经存在的对象赋值给另一个变量,然后将后者赋值为null。
String oldStr = "Hello"; String newStr = oldStr; oldStr = null; // 将oldStr赋值为null
3、检查一个对象是否为null
可以使用==
运算符或Objects.equals()
方法来检查一个对象是否为null。
if (str == null) { System.out.println("str is null"); } else { System.out.println("str is not null"); }
或者:
import java.util.Objects; if (Objects.isNull(str)) { System.out.println("str is null"); } else { System.out.println("str is not null"); }
4、将null赋值给一个引用变量
可以将null赋值给一个引用变量,以便稍后重新分配一个新的对象。
List<String> list = new ArrayList<>(); // 创建一个新的ArrayList实例并赋值给list变量 list = null; // 将list赋值为null,以便稍后重新分配一个新的ArrayList实例
5、在switch语句中使用null作为默认分支
在switch语句中,可以使用null作为默认分支,当所有case条件都不满足时,执行default分支。
int day = 5; switch (day) { case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; case 4: System.out.println("Thursday"); break; case 5: // 当day为5时,执行此分支 System.out.println("Friday"); break; default: // 当day不满足以上任何一个条件时,执行此分支,此时day的值为null,所以输出"Unknown day" System.out.println("Unknown day"); break; }
相关问题与解答
1、为什么不能用“==”运算符来比较一个对象和null?如果将一个对象赋值为null,那么这个对象和null的引用是相等的,对吧?答:实际上,一个对象和null的引用是不相等的,当一个对象被赋值为null时,它仍然是一个有效的对象,只是它的引用被设置为null,使用“==”运算符比较一个对象和null会返回false,正确的做法是使用“===”运算符或Objects.equals()
方法来比较对象和null。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/273617.html