ホームページ >Java >&#&チュートリアル >静的フィールドはいつガベージ コレクションできるようになりますか?
静的変数を含むクラスは、クラスがロードされている限り、ガベージ コレクターによってアンロードされることはありません。静的変数は、クラスが使用されなくなった場合でも、プログラムの実行中はメモリ内に残ります。
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 サイトの他の関連記事を参照してください。