Java の文字列プールの探索
次のコードを考えてみましょう:
String first = "abc"; String second = new String("abc");
質問 1: 文字列プールNewでの使用法キーワード
Java が new String() コンストラクターで 2 番目に初期化するとき、まったく新しい abc String インスタンスが作成されますか?
答え: はい、new を使用します。新しい String オブジェクトが確実に作成されます。
質問 2: ヒープと Stringプール ストレージ
新しく作成された String インスタンス (新しいキーワードから) は通常のヒープに保存されますか?
答え: すべてのオブジェクトString オブジェクトを含む、ヒープ上に常駐します。文字列プールは独立したメモリ領域ではありません。これはキャッシュのようなメカニズムです。
質問 3: 文字列プールの数
「abc」文字列のインスタンスは何個文字列プールに最終的に存在しますか?
答え: 通常、不変の String を作成するときは、リテラルの場合、Java はそれらを自動的に文字列プールに配置します。ただし、この特定のシナリオでは、
したがって、この場合のみ1 つの "abc" String インスタンスが String プールに存在します。
以上がJava の文字列プールは、「new」キーワードで作成された文字列をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。