java - 处理一个类加载器

标签 java dispose classloader urlclassloader

我正在使用扩展 URLClassLoader 的自定义类加载器。我将一些类加载到我的自定义类加载器中并执行一些任务。任务完成后,我想处理类加载器。我尝试通过将引用设置为 null 来做到这一点。

但这不会对类加载器进行垃圾回收。

有什么方法可以帮助我实现目标吗?

最佳答案

基本上,正如@invariant 已经指出的那样,取消引用由特定类加载器加载的所有类应该使该类加载器成为可回收垃圾。但是,(至少)有一个异常(exception):如果一个类被序列化,则该类(及其类加载器)将在内部被 ObjectStreamClass 引用,这是一个原始类,因此永远不会被垃圾收集.所以在这种情况下,在整个 JVM 终止之前,类加载器也不能被垃圾回收。

查看完整说明 here ,在“与垃圾收集和序列化相关的问题”部分。

关于java - 处理一个类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2552218/

相关文章:

java - 如何按最低数字/字符串Android Studio对recyclerview进行排序

java - ap_proxy_connect_backend 为 (127.0.0.1) 禁用 worker

java - 如何在不触发 insertUpdate() 的情况下将文本插入文档

c# - 如何最好地处置因 AutoResetEvent.WaitOne() 而处于休眠状态的线程

Java、Classpath、Classloading => 同一个 jar/项目的多个版本

security - Struts2 + 类加载器漏洞 + 如何重现

java - 在哪里可以找到下载的 sbt 库?

c# - 如何检查是否已抛出任何异常?

c# - 图像 PropertyItems 和处置的 MemoryStream

java - 如何在 Java 中预加载类?