二重引用符(""
)には、実際に文字列で宣言していない場合でも、その方法があります。例えば同様:""(二重引用符)にはメソッドがどのようにありますか?
System.out.println("".length());
は文字列でそれを宣言せずに、すでにオブジェクト""
のですか? それともJava上のキーワードなのですか?彼はそれがすでに製作中の文字列であることを知っていますか?
二重引用符(""
)には、実際に文字列で宣言していない場合でも、その方法があります。例えば同様:""(二重引用符)にはメソッドがどのようにありますか?
System.out.println("".length());
は文字列でそれを宣言せずに、すでにオブジェクト""
のですか? それともJava上のキーワードなのですか?彼はそれがすでに製作中の文字列であることを知っていますか?
JLS §3.10.5は、文字列リテラルが何であるかを説明する(「リテラル文字列は二重引用符で囲まれたゼロ個以上の文字で構成されています。」)とも書かれています:
文字列リテラルは常にString型(§4.3.3)です。
""
は、java.lang.String
リテラルです。他のStringオブジェクトと同様に、メソッドを呼び出すことができます。
""
は、String
のインスタンスです。あなたはそれに任意のString
メソッドを呼び出すことができます。文字列リテラルは、常にString型(§4.3.3)である
:それはリテラルである事実があるという事実は変わりません。
リテラルおよび他のString
Sとの差がリテラルは、コンパイル時に構築され、全て同じリテラルインスタンスを1つだけ有していることです。
空の文字列はJLS - 3.10.5. String Literalsに記載されている:
次の文字列リテラルの例です:
"" // the empty string "\"" // a string containing " alone "This is a string" // a string containing 16 characters "This is a " + // actually a string-valued constant expression, "two-line string" // formed from two string literals
それは有効な文字列、空の一つです。
これは文字列リテラルと呼ばれ、java.lang.String
メソッドのいずれかを使用できます。
文字列クラスは文字列を表します。 のすべての文字列リテラル "abc"などのJavaプログラムは、この クラスのインスタンスとして実装されています。
hereからAPIを見てください。ここでは、文字列や、java.lang.String
メソッドについての説明があります。それがobj String
のような役割を果たし、なぜ
ダブルqoute ""
は、文字列リテラルのthatsです。
よく 'String'は' Object'で、 '' ''は 'String'です。だから – SomeJavaGuy
これは既存の質問と重複している必要がありますが、見つけられません。 –