2016-12-08 2 views
1

В моем классе информатики мы обсуждали значение null и значения, когда мы сталкивались с затруднительным положением. Мы не могли понять значение просто 2 кавычек без пробела как «". Просто интересно, знает ли кто-нибудь, что такое точное значение «». СпасибоЗначение двух котировок без пробела »«

+0

считать 'String test =" "; \t System.out.println (test.hashCode()); ' –

+0

http://stackoverflow.com/questions/30458491/double-quotes-only-in-java-string-without-space – soorapadman

ответ

0

Это пустой String. JLS-3.10.5. String Literals говорит Строковый литерал состоит из нуля или более символов, заключенных в двойные кавычки. И затем включает этот пример

Ниже приведены примеры строковых литералов:

""     // the empty string 

В Java String (ы) неизменен, он имеет постоянную длину 0 и магазинов последовательность из 0 символов.

0

При инициализации с null, как это:

String s1 = null; 

Это означает, что ни один объект не присваивается переменной s1. Тем не менее, когда вы инициализировать его с пустой строкой, как это:

String s2 = ""; 

Это означает, что объект строки присваивается s2 (хотя пусто).

Теперь, если вы хотите выполнить какую-либо операцию, допустим, вы хотите вызвать метод строки .equals(..), тогда он будет вызывать NullPointerException в первом случае, поскольку нет объекта String. Тем не менее, он будет работать нормально в последнем, потому что там есть объект, неважно, пусто ли он или нет

s1.equals("something"); // throws NullPointerException 
s2.equals("something"); // works fine