我想知道为什么我们调用null字符串。其中Strings是java中的对象,对象不能为null,只有引用可以为null。
任何人都可以详细说明吗?
答案 0 :(得分:7)
这里有点混乱。我希望'null String'是一个实际上不引用String的String引用(即它是null)。但是this article声称'null string'是一个空字符串。
出于这个原因,我尝试讨论空引用 - 即根本不指向任何内容的引用,而不是有效对象。而且(要清楚)空字符串。对我来说'null String'意味着与null引用相同,但后一个术语对我来说更清楚。
答案 1 :(得分:2)
表达式“null string”仅表示“string”类型的引用,它不引用任何内容(即“null”)。这是一个常用的短语,但正如你所指出的那样并不完全正确。
这只是一种在随意对话中表达概念的简单方式,而不是别的。
答案 2 :(得分:1)
JLS定义空字符串和空文字以及空引用。
如果作者介绍空字符串,他应该定义空字符串的确切含义。
答案 3 :(得分:0)
你可以这样看:
以下是一个例子:
String a; // object reference a has the value null
a = new String("Hello World"); // new object is assigned to reference a. Yes, I
// know that the string constructor should be avoided, but
// to show the point it is necessary
String b = a; // object references point to the same object
对象引用可以是null
,如果没有分配对象,则为null
。
如果您调用此类对象,则会抛出NullPointerException。
我假设您来自C ++。 Java对象更像是C ++指针,因为它具有空值,但是以安全的方式。
答案 4 :(得分:0)
对我来说,空字符串是String
null
:
String NULL = null;
这与空字符串:
非常不同String EMPTY = "";
即使很多来源(Wikipedia,Encyclopedia.com,Answers.com引用它们)似乎认为空字符串和空字符串是一回事。