2016-11-23 7 views
2

二重引用符("")には、実際に文字列で宣言していない場合でも、その方法があります。例えば同様:""(二重引用符)にはメソッドがどのようにありますか?

System.out.println("".length()); 

は文字列でそれを宣言せずに、すでにオブジェクト""のですか? それともJava上のキーワードなのですか?彼はそれがすでに製作中の文字列であることを知っていますか?

+4

よく 'String'は' Object'で、 '' ''は 'String'です。だから – SomeJavaGuy

+2

これは既存の質問と重複している必要がありますが、見つけられません。 –

答えて

5

JLS §3.10.5は、文字列リテラルが何であるかを説明する(「リテラル文字列は二重引用符で囲まれたゼロ個以上の文字で構成されています。」)とも書かれています:

文字列リテラルは常にString型(§4.3.3)です。

1

""は、java.lang.Stringリテラルです。他のStringオブジェクトと同様に、メソッドを呼び出すことができます。

2

""は、Stringのインスタンスです。あなたはそれに任意のStringメソッドを呼び出すことができます。文字列リテラルは、常にString型(§4.3.3)である

:それはリテラルである事実があるという事実は変わりません。

--reference

リテラルおよび他のString Sとの差がリテラルは、コンパイル時に構築され、全て同じリテラルインスタンスを1つだけ有していることです。

+0

これはStringのインスタンスと似ていますが、リテラルStringです。それは同じだ。ありがとうございます。 – msagala25

+0

正確に。私は仕様をリンクしました。リテラルについての章を読むことを強くお勧めします。実際には、ドキュメント全体を読む価値はありますが、難しいです。 – xenteros

3

空の文字列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 

それは有効な文字列、空の一つです。

1

これは文字列リテラルと呼ばれ、java.lang.Stringメソッドのいずれかを使用できます。

文字列クラスは文字列を表します。 のすべての文字列リテラル "abc"などのJavaプログラムは、この クラスのインスタンスとして実装されています。

hereからAPIを見てください。ここでは、文字列や、java.lang.Stringメソッドについての説明があります。それがobj Stringのような役割を果たし、なぜ

1

ダブルqoute ""は、文字列リテラルのthatsです。

関連する問題