ホームページ >Java >&#&チュートリアル >「new」キーワードを使用せずに Java で文字列を作成できるのはなぜですか?

「new」キーワードを使用せずに Java で文字列を作成できるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-16 21:51:03584ブラウズ

Why Can You Create Strings in Java Without the

文字列: "new" キーワードのないオブジェクト

Java 文字列は確かにオブジェクトですが、文字列はキーワードなしで作成できるという点で独特です。 「新しい」というキーワード。ここで疑問が生じます: なぜですか?

最初、文字列は他のオブジェクトと同じように作成されているように見えます:

しかし、文字列はこの方法では初期化されません:

文字列リテラルのインターン

この矛盾を理解するには、文字列インターンの概念を詳しく調べる必要があります。インターンとは、特定の文字列リテラル (例: "abcd") が出現するたびに、毎回新しいインスタンスを作成するのではなく、その文字列の単一のインスタンスを参照することを意味します。

Java では、二重引用符で宣言された文字列は次のようになります。リテラルとして扱われ、自動的にインターンされます。これは、

の結果:

"new" による文字列作成

文字列に対してインターンが有効であるにもかかわらず、リテラルの場合でも、「new」キーワードを使用して文字列を作成できます:

ただし、この場合、次のことが可能です:

インターンの利点

文字列リテラルのインターニングには、いくつかの利点があります。

  • パフォーマンス: 一意の文字列ごとに単一のインスタンスを使用することで、JVM が割り当てるメモリとパフォーマンスが少なくなります。オブジェクトの作成が少なくなります。
  • メモリの節約: インターンにより、それぞれの文字列に対してインスタンスが 1 つだけ存在することが保証され、メモリの使用量が削減されます。
  • 等価性チェック: 文字列リテラルに「==」を使用することは、物理的な同等性をチェックするため有効であり、インターンによって保証されます。

注: を使用することを常に推奨します。内容の同等性をチェックするため、インターンされた文字列であっても文字列を比較するためのquals()メソッド。

以上が「new」キーワードを使用せずに Java で文字列を作成できるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。