Class.forName调用后的可用内存如何?

时间:2013-09-17 13:18:06

标签: java class memory garbage-collection classloader

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

1 个答案:

答案 0 :(得分:0)

问题或许可以做一些澄清。 OP加载实例是类还是类定义?

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

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

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