Почему мы называем пустую строку? - PullRequest
2 голосов
/ 31 января 2010

Мне нравится знать, почему мы называем пустую строку. Где строки - это объекты в java, а объекты не могут быть нулевыми, только ссылки могут быть нулевыми.

Кто-нибудь может уточнить?

Ответы [ 5 ]

7 голосов
/ 31 января 2010

Здесь немного путаницы. Я ожидал бы, что 'null String' будет ссылкой на String, которая на самом деле не ссылается на String (то есть она имеет значение null). Но эта статья утверждает, что 'нулевая строка' является пустой строкой.

По этой причине я пытаюсь говорить о нулевых ссылках - то есть ссылках, которые вообще ни на что не указывают, а не на действительный объект. И (чтобы быть ясно) пустые строки. «Нулевая строка» для меня означает то же самое, что и нулевая ссылка, но последний термин мне понятнее.

2 голосов
/ 31 января 2010

Выражение «нулевая строка» просто означает ссылку на тип «строка», которая ничего не ссылается (т.е. является «нулевой»). Это фраза, которая обычно используется, но не совсем корректна, как вы указываете.

Это просто более простой способ выразить концепцию в обычной беседе, ничего более.

1 голос
/ 31 января 2010

JLS определяет пустые строки и нулевой литерал, а также нулевую ссылку.

Если автор вводит нулевые строки , он должен определить, что именно подразумевается под нулевой строкой.

0 голосов
/ 31 января 2010

Для меня пустая строка - это String, то есть null:

String NULL = null;

И это очень отличается от пустой строки :

String EMPTY = "";

Даже если многие источники ( Википедия , Encyclopedia.com , Answers.com для их цитирования), похоже, считают, что пустая строка и пустая строка - это одно и то же.

0 голосов
/ 31 января 2010

Вы можете видеть это так:

  • Объекты являются экземплярами классов.
  • Ссылки на объекты относятся ни к одному, ни к одному объекту.

Вот пример:

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 ++, поскольку имеет нулевое значение, но безопасным способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...