1. 概要
ランタイムデータ領域では、プログラムカウンタ、仮想マシンスタック、ローカルメソッドスタックはすべてスレッドによって生成および破棄されます
したがって、それらのメモリ割り当てとリサイクルは確実であり、再利用時にリサイクルされます。メソッドまたはスレッドが終了します。 Java ヒープと正方形の領域は不確実です。プログラムの実行中に作成されるオブジェクトのサイズは、プログラムの実行中にのみわかります。オブジェクトが生きているかどうかを判断するには、参照カウント方式と到達可能性分析アルゴリズムの 2 つの主なアルゴリズムがあります
参照カウント方式参照カウンタ、オブジェクトが 1 回参照されるたびに、カウンタ値は次のようになります。カウンタが 0 の場合は、再度使用されないことを意味します。
このアルゴリズムはGC ROOTとなるノードをルートノードとして使用し、
ローカルメソッド内の参照オブジェクト
と見なされます。実行する必要がないと判断された場合は、F-Queueというキューに入れられ、後ほどJVM
finalizeメソッドについては上で何度も言及していますが、オブジェクトのfinalizeメソッドはシステムによって自動的に一度しか呼び出されないことに注意してください。
以上がJVM の高度な機能 - 3. オブジェクト生存アルゴリズムを決定するガベージ コレクションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。