我对java中的null感到困惑。书上说,如果我们声明一个引用类型的变量而不进行初始化,该变量将具有默认值null。所以我尝试了这样的
import edu.princeton.cs.algs4.*;
public class test
{
public static void main(String[] args)
{
String a;
StdOut.println(a);
}
}
但是在java中这是错误的,因为变量a没有初始化。这与 a 将具有默认值 null 相矛盾。
我还有一个困惑是,如果我运行下面的代码
import edu.princeton.cs.algs4.*;
public class test
{
public static void main(String[] args)
{
StdOut.println(null+"a");
StdOut.println("null"+"a");
}
}
两个代码行都打印nulla。那么字符串 "null" 等于 null 是真的吗?
有人能帮我解答这两个问题吗?任何建议都有帮助。谢谢。
最佳答案
Book says that if we declare a variable of reference type without initialization, the variable will have default value null.
什么书?如果它真的这么说的话,那就错了。该语句仅适用于静态变量和实例变量,不适用于局部变量。局部变量在使用前必须显式初始化,编译器知道你没有这样做,并给出编译错误(而不是让你的程序以未定义的方式执行)。
is it true that string "null" equals null?
String.valueOf(null)
确实等于 "null"
。
关于java - Java中什么是Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35123751/