この記事では、Java でのオブジェクトの破棄方法をより詳しく分析します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
Java の基本データ型変数とオブジェクト名参照変数は、メソッド内で定義されている場合はすべてローカル変数です。ただし、オブジェクト自体には必ずしもローカルなライフサイクルがあるとは限りません。関数の外側にオブジェクトへの他の参照変数がある場合、オブジェクトのライフサイクルは、他の参照変数が配置されているブロックまで拡張されます。
呼び出される関数のパラメータ参照からメイン呼び出し関数のオブジェクト型変数に値または戻り値が渡された場合、オブジェクトはまだ存在します (ただし、呼び出される関数のオブジェクトの参照変数のライフサイクルは終了するため、参照変数はローカル変数です)、この時点でオブジェクトはローカル変数のローカル有効期間を突破します。
Java オブジェクトの破棄
Java のガベージ コレクターは、Java オブジェクトの動的メモリを定期的に自動的にスキャンし、オブジェクトの実行後 (オブジェクトに関連付けられている参照変数がない)、すべての参照オブジェクトをマークし、マークされていないオブジェクトはすべてガベージとしてリサイクルされます。そして、ガベージオブジェクトによって占められていたメモリ空間が解放されます。
オブジェクトは実行後、またはライフサイクルが終了するとガベージ オブジェクトになりますが、すぐにリサイクルされるわけではありません。ガベージ コレクターがアイドル状態であるか、メモリが不足している場合にのみリサイクルされます。
Java のすべてのオブジェクトには、finalize() メソッドがあります。
protected void Finalize()throws Throwable{}
ガベージ コレクターは、オブジェクトをリサイクルするときに、オブジェクトの Finalize() メソッドを自動的に呼び出してシステム リソースを解放します。
Finalize() 関数のプロトタイプ:
protected void | finalize () ガベージ時にオブジェクトのガベージ コレクターによって呼び出されます。コレクションは、これ以上の参照がないと判断します。 オブジェクト。 |