【发布时间】:2019-02-15 22:35:22
【问题描述】:
我有创建类加载器实例 (URLClassLoader) 并使用它动态加载 Jar 文件的应用程序。接下来,使用反射创建来自 Jar 的类的实例。最后,所有引用都以 Class Loader 及其相关对象和类应该被垃圾回收的方式无效。
在 JProfiler 10.1.5 中进行分析期间,我单击“Run GC”工具栏按钮,然后拍摄堆快照(无论是否“Perform full GC in heap快照”选项被选中)。正如我所料,堆上没有 Class Loader 实例,没有相关的对象和类,它们是垃圾收集的。
另一方面,当我不使用“Run GC”按钮,而是使用“Perform full GC in heap snapshot”拍摄许多堆快照时 选项 selected(带有“仅保留强引用持有的对象”子选项),我总是在快照上看到我的 Class Loader 实例,以及相关的对象和类。他们没有被垃圾收集!为什么?
【问题讨论】:
标签: java garbage-collection classloader jprofiler