Java では文字列リテラルがガベージ コレクションされることはありますか?

DDD
リリース: 2024-10-30 02:46:29
オリジナル
846 人が閲覧しました

 Are String Literals Ever Garbage Collected in Java?

文字列リテラルのガベージ コレクション

Q1: 文字列がコンパイル時にリテラルとして定義されている場合 (例: String str = "java")、ガベージ コレクションされますか?

通常はそうではありません。コード オブジェクトにはリテラル String オブジェクトへの参照が含まれており、アクセス可能に保たれています。ガベージ コレクションは、コード オブジェクトが到達不能になった場合にのみ発生します。

Q2: intern メソッドが使用されている場合 (例: String str = new String("java").intern())、それはガベージになりますか? collected?

返されるオブジェクトは、クラスのロード時にインターンされる「java」文字列リテラルと同じになります。したがって、ガベージ コレクションの対象にはなりません。ただし、文字列リテラルと同一ではないインターンされた文字列は、到達不能になったときにガベージ コレクションされる可能性があります。

Q3: String クラスがアンロードされるときにのみリテラルがガベージ コレクションされるのは意味がありますか?

いいえ。 String クラスは Java 仮想マシンにとって必須であり、アンロードされる可能性はほとんどありません。そうでないと記載されている情報源は正しくありません。

以上がJava では文字列リテラルがガベージ コレクションされることはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!