ClassLoaderは永久世代メモリに保存されます。また、Java HotSpot™ 仮想マシンでのJava メモリ管理のホワイト ペーパーで指定されているように、永久世代メモリは確実にガベージ コレクションされます。それで、カスタムClassloaderはまだメモリリークにつながりますか? はいの場合、なぜそれが起こるのですか?
アップデート
@Marko Topolnik と @Prunge の助けを借りて、私の疑問は明確になりました。また、ClassLoader とメモリ リークについては、次の点が指摘されています。
- Custom
ClassLoaderは Perm 世代に保存されません。 - Customが範囲外の
ClassLoader場合、メモリ リークが発生する可能性がありますが、オブジェクトClassLoderを に設定しても、カスタムがロードしたクラスは引き続きアプリケーションによって参照されます。ClassLoadernull - 特定のオブジェクトが必要ない場合は
ClassLoader、ロードされたクラスから開発されたオブジェクトへのすべての参照が であることを確認する必要がありますnull。 - によってロードされたクラスのいずれかが
ClassLoader適格でないGC場合、ClassLoader は適格ではありませんGCed。