Java 为什么我们称为空字符串?

Java 为什么我们称为空字符串?,java,Java,我想知道为什么我们叫空字符串。在java中,字符串是对象,对象不能为null,只有引用可以为null 有人能详细解释一下吗?表达式“空字符串”只是指类型为“字符串”的引用,它不引用任何内容(即“空”)。这是一个常用的短语,但并不像你指出的那样完全正确 这只是在随意的交谈中表达一个概念的一种更简单的方式,没有别的。这里有点混乱。我希望“null String”是一个实际不引用字符串的字符串引用(即,它是null)。但声明“空字符串”为空字符串 出于这个原因,我试着讨论空引用——也就是说,指向任何东

我想知道为什么我们叫空字符串。在java中,字符串是对象,对象不能为null,只有引用可以为null

有人能详细解释一下吗?

表达式“空字符串”只是指类型为“字符串”的引用,它不引用任何内容(即“空”)。这是一个常用的短语,但并不像你指出的那样完全正确


这只是在随意的交谈中表达一个概念的一种更简单的方式,没有别的。

这里有点混乱。我希望“null String”是一个实际不引用字符串的字符串引用(即,它是null)。但声明“空字符串”为空字符串


出于这个原因,我试着讨论空引用——也就是说,指向任何东西而不是有效对象的引用。和(需要澄清的是)空字符串。“空字符串”对我来说与空引用的含义相同,但后一个术语对我来说更清楚。

你可以这样看:

  • 对象是类的实例
  • 对象引用不引用任何对象或单个对象
以下是一个例子:

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
。 如果调用这样的对象,将抛出一个

我假设你来自C++。java对象引用它更像C++指针,因为它有一个空值,但它是安全的。

对于我来说,空字符串是<代码>字符串< /C> >,即<代码> null < /C> >:

String NULL = null;
这与空字符串非常不同:

即使许多来源(引用它们)似乎认为空字符串和空字符串是同一事物。

定义空字符串和空文字以及空引用。
如果作者引入了空字符串,他应该定义空字符串的确切含义。

+1了解与字符串相关的“空”和“空”之间的区别。根据我的经验,这是一个常见的误解。Apache Commons Lang
StringUtils
明确区分了“null”、“empty”和“blank”。。。所有有用的区别。@skaffman-空字符串和空白字符串到底有什么区别???@Roger,可能包含空格和长度为零的字符串?@Dominic:空字符串是长度为零的字符串。空白字符串是其字符为空格或控制字符的字符串。所以空字符串总是空的,但空字符串并不总是空的。
String EMPTY = "";