JVM クラス アンロード/アンインストールの方法【Java】

JVM内では、クラスのアンロードはガベージコレクタによって行われます。あるクラスがもはやどのオブジェクトからも参照されなくなった場合、ガベージコレクタはそのクラスをアンロード可能なものとしてマークし、適切なタイミングでアンロードします。

具体地说,クラスがJVMにロードされると、ローダーによってメソッド領域(Metaspace)にロードされ、そのクラスを表すClassオブジェクトが生成されます。このClassオブジェクトがもはや参照されていない場合、JVMはそのクラスを「アンロード可能」とマークします。ガベージコレクタがガベージコレクションを実行するとき、ロードされたクラスと対応するClassオブジェクトが参照されていないかどうかを確認し、参照されていない場合はそのクラスをアンロードできます。

すべてのクラスがアンロード可能であるわけではない点に留意する必要があります。システムクラスローダーによってロードされる特定のクラスや、ブートストラップクラスローダーによってロードされる特定のクラス、またはJava 8以前のバージョンでは”永続代”、Java 8以降のバージョンでは”メタスペース”としてマークされたクラスなど、いくつかの特殊なクラスはアンロードできない可能性があります。

bannerAds