null和空字符串之间的区别

Sha*_*yaz 44 java string null nullpointerexception

null string(String s = null)和空字符串(String s = "")之间有什么区别?

这就是我所拥有的:

String s1 = ""; //print statement does not print any thing for s1 but s1.length()=0
String s2 = null;//print statement prints "null" for s2  but s2.length() gives exception
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

acd*_*ior 62

String s1 = "";表示将空String分配给s1.在这种情况下,s1.length()是相同的"".length(),它将0按预期产生.

String s2 = null;表示null分配了()或"根本没有值" s2.所以这一个,s2.length()是一样的null.length(),这将产生一个NullPointerException,你不能调用方法null变量(指针,排序)在Java中.

还有,一点,声明

String s1;
Run Code Online (Sandbox Code Playgroud)

实际上有同样的效果:

String s1 = null;
Run Code Online (Sandbox Code Playgroud)

String s1 = "";
Run Code Online (Sandbox Code Playgroud)

如上所述,是另一回事.


JDG*_*ide 10

Null没意思.它只是一个文字.Null是引用变量的值.但空字符串是空白的length=0.它给出了.空字符串是空值,表示字符串没有任何东西.


小智 6

在分配了NULL值的对象上不能调用任何方法。它会给一个nullPointerException。因此,s2.length()给出一个例外。