我有一个带有两个字符串变量的类,即:
String str = null;
String str1="null";
一个是“字符串值null”,另一种是将null对象分配给字符串变量。 那么,这两个任务有什么区别?如何检查一个任务是否与另一个任务不同?
答案 0 :(得分:7)
String str = null;
表示str是String的引用,它指向null。
String str1="null";
表示str1对象,它指向字符串对象,它为“ null”。
首先检查object是否为null?然后使用equals方法进行比较。 喜欢
if(str==null && str1==null){
//Both are null and equal
}
if(str != null && str.equals(str1)){
//return true;
}
else
{
//return false;
}
答案 1 :(得分:3)
字符串"null"
是一个长度为4的字符串,包含字符n
,u
,l
和l
。可以与其他任何字符串一起使用。
null
引用不是字符串。任何尝试像字符串一样使用它都会导致NullPointerException
。
答案 2 :(得分:0)
1)字符串str = null;
这里str没有创建实例,因为它被分配为null,因此堆中没有新的内存消耗
2)字符串str1 =“ null”;
在这里创建了str1字符串实例,并将“ null”存储为值