null =""表示字符串

Dea*_*ean 10 java

在Java中这两个语句是一样的吗?

String a = null;
String b = "";
Run Code Online (Sandbox Code Playgroud)

这感觉有点愚蠢的问题,但目前有一个完整的心理障碍.

Mar*_*ers 29

空字符串和null不同.空字符串是一个没有字符的字符串,根本没有null字符串.

您可以在空字符串上调用方法,但如果您尝试在null上调用方法,则会出现异常.

public static void main(String[] args)
{
    String a = null;
    String b = "";
    System.out.println(b.length());
    System.out.println(a.length());
}
Run Code Online (Sandbox Code Playgroud)

输出:

0
Exception in thread "main" java.lang.NullPointerException
        at Program.main(Program.java:12)