gpt4 book ai didi

java - Class.forName 调用后如何释放内存?

转载 作者:行者123 更新时间:2023-12-01 04:21:34 26 4
gpt4 key购买 nike

想要 必须编写一些动态加载类的工具。所以我必须为此调用 Class.forName 函数。可以有很多类 - 大约 10000 个。是否可以在加载所有类但不再需要它们后释放内存?

最佳答案

这个问题也许需要一些澄清。 OP 是否加载类的实例或类定义?

如果问题涉及实例,那么正如 Clement Berthou 所说,您所需要做的就是取消引用创建的实例,它们最终应该被垃圾收集。您可以随时通过调用System.gc()来请求垃圾回收。

对于类定义,我认为情况是相同的,但略有不同。即使该类的所有实例都已取消引用,仍然可能存在来自最初加载的 ClassLoader 的引用。

因此,我认为您需要取消引用用于加载类定义的类加载器,以使类定义可用于垃圾回收。不过我不确定,上次我直接查看类加载已经是很久以前的事了。

关于java - Class.forName 调用后如何释放内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18850992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com