ホームページ >Java >&#&チュートリアル >静的フィールドはいつガベージ コレクションできるようになりますか?

静的フィールドはいつガベージ コレクションできるようになりますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-30 18:51:19237ブラウズ

When Can Static Fields Be Garbage Collected?

静的フィールドがガベージ コレクションの対象となるのはどのような場合ですか?

静的変数を含むクラスは、クラスがロードされている限り、ガベージ コレクターによってアンロードされることはありません。静的変数は、クラスが使用されなくなった場合でも、プログラムの実行中はメモリ内に残ります。

class MyUtils {
   private static MyObject myObject = new MyObject();
   /*package*/static boolean doStuff(Params... params) {
       // do stuff with myObject and params...
   }
}

この例では、myObject は静的変数であるため、 MyUtils クラスがアンロードされるまで、ガベージ コレクションの対象にはなりません。クラスは決してアンロードされないため、myObject はプログラムの存続期間中メモリ内に残ります。

例外

JLS セクション 12.7 の「クラスとインターフェイスのアンロード」では、クラスまたはインターフェイスは次のとおりです。定義するクラスローダーがガベージコレクターによって再利用される可能性がある場合は、アンロードされます。ブートストラップ ローダーによってロードされたクラスとインターフェイスはアンロードできない場合があります。

以上が静的フィールドはいつガベージ コレクションできるようになりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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