文字列: "new" キーワードのないオブジェクト
Java 文字列は確かにオブジェクトですが、文字列はキーワードなしで作成できるという点で独特です。 「新しい」というキーワード。ここで疑問が生じます: なぜですか?
最初、文字列は他のオブジェクトと同じように作成されているように見えます:
しかし、文字列はこの方法では初期化されません:
文字列リテラルのインターン
この矛盾を理解するには、文字列インターンの概念を詳しく調べる必要があります。インターンとは、特定の文字列リテラル (例: "abcd") が出現するたびに、毎回新しいインスタンスを作成するのではなく、その文字列の単一のインスタンスを参照することを意味します。
Java では、二重引用符で宣言された文字列は次のようになります。リテラルとして扱われ、自動的にインターンされます。これは、
の結果:
"new" による文字列作成
文字列に対してインターンが有効であるにもかかわらず、リテラルの場合でも、「new」キーワードを使用して文字列を作成できます:
ただし、この場合、次のことが可能です:
インターンの利点
文字列リテラルのインターニングには、いくつかの利点があります。
注: を使用することを常に推奨します。内容の同等性をチェックするため、インターンされた文字列であっても文字列を比較するためのquals()メソッド。
以上が「new」キーワードを使用せずに Java で文字列を作成できるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。