2016-12-08 5 views
1

私のコンピュータ科学のクラスでは、私たちが苦境に遭遇したときにnullと値について議論していました。スペースのない2つの引用符の値を ""と理解することはできませんでした。誰かが ""の正確な価値を知っているかどうか疑問に思うだけです。ありがとう空白のない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と表示されます文字列リテラルは、0個以上の文字が二重引用符で囲まれて構成されています。。そして、本実施例を含む

以下は、文字列リテラルの例である:ジャワString(S)として

""     // the empty string 

は不変であり、それは0の一定の長さを有し、記憶0文字のシーケンス。あなたはこのようなnullでそれを初期化し

0

String s1 = null; 

これは、オブジェクトが変数s1に割り当てられていないことを意味します。しかし、あなたは次のように空の文字列で初期化したときに:それは、Stringオブジェクトが(空が)s2に割り当てられていることを意味

String s2 = ""; 

ここで操作を実行する場合は、.equals(..)というメソッドをstringとして呼び出すとします。前者の場合、Stringオブジェクトがないため、NullPointerExceptionがスローされます。しかし、そこにオブジェクトがあるので後者でうまくいくでしょう。空であるかどうかは関係ありません。

s1.equals("something"); // throws NullPointerException 
s2.equals("something"); // works fine 
関連する問題