ホームページ  >  記事  >  Java  >  これを試してください: ガベージ コレクションと終了

これを試してください: ガベージ コレクションと終了

WBOY
WBOYオリジナル
2024-07-31 12:27:03947ブラウズ

ガベージ コレクションがバックグラウンドで散発的に実行されるため、
実証するのは簡単ではありません。ただし、それを行う 1 つの方法は
を使用することです。 Finalize() メソッドを使用します。オブジェクトがリサイクルされようとしているときに、finalize() が呼び出されることを思い出してください。説明したように、オブジェクトは不要になったらすぐにリサイクルされるとは限りません。代わりに、ガベージ コレクターは、通常、未使用のオブジェクトが多数ある場合に、収集を効率的に実行できるようになるまで待機します。

したがって、finalize() メソッドによるガベージ コレクションをデモンストレーションするには、次のことを行う必要があります。
さまざまなオブジェクトを作成および破棄します。これがまさにこのプロジェクトで行うことです。

1 Finalize.java という名前の新しいファイルを作成します。

2 FDemo クラスを作成します。
Image description

コンストラクターはインスタンス変数 x を既知の値に設定します
の。この例では、x がオブジェクト ID として使用されます。
メソッド Finalize() は、オブジェクトがリサイクルされるときに x の値を表示します。特に興味深いのは、generator( ) です。このメソッドは、FDemo オブジェクトを作成し、すぐに破棄します。次のステップでそれがどのように使用されるかを見ていきます。

3 Finalize クラスを作成します。
Image description

このクラスは、ob という名前の初期 FDemo オブジェクトを作成します。次に
を使用します ob では、ob 内でジェネレーター() を呼び出して 100,000 個のオブジェクトを作成します。その結果、100,000 個のオブジェクトが作成され、破棄されます。
の途中のさまざまなポイントで プロセスでガベージ コレクションが発生します。空きメモリの初期量やオペレーティング システムなど、多くの要因が正確な頻度と時期に影響します。ただし、ある時点で、finalize( ) によって生成されたメッセージが表示されるようになります。それらが表示されない場合は、for ループのカウントを増やして、生成されるオブジェクトの数を増やしてみてください。

以上がこれを試してください: ガベージ コレクションと終了の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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