Java の文字列プールと文字列オブジェクトの作成
Java で String オブジェクトを作成する場合、開発者は new キーワードまたは文字列プールに依存します。 String プールは、同じ値を持つ以前に作成された String オブジェクトを再利用することでメモリの使用を最適化するメカニズムです。
提供されたコードに関して:
String first = "abc"; //literal String String second = new String("abc"); //created with new keyword
新しいキーワードの使用あなたが述べたように、Javaで新しいStringオブジェクトを作成します。ただし、この新しいオブジェクトは文字列プールには保存されません。代わりに、通常のヒープに割り当てられます。その理由は、プール内に同一のオブジェクトが既に存在する場合でも、new キーワードにより新しい String オブジェクトの作成が強制されるためです。
この特定のケースでは、String プールにはリテラル String "abc," が含まれています。 " これは最初に割り当てるときに使用されます。 new String("abc") で作成された String は異なり、ヒープ上に存在します。したがって、2 つの String オブジェクトが存在します。1 つはプールに、もう 1 つはヒープにあります。
new キーワードを使用して String を作成すると、不必要なメモリ消費とパフォーマンスの低下につながる可能性があることに注意することが重要です。 Java の String プールは、既存の String オブジェクトを再利用することで効率的なメモリ管理を保証します。したがって、一般的には、文字列の作成に new キーワードの使用を避け、代わりに文字列プール メカニズムに依存することをお勧めします。
以上がJava 文字列: 新しいキーワードと文字列プール: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。