Java垃圾收集器会免费使用未使用的类

时间:2015-08-11 09:00:03

标签: java jvm java-bytecode-asm

我的程序使用ASM库生成adhoc类以进行高效计算。每次调用都会生成一个新类。

定义adhoc类的类加载器实例和adhoc类的所有实例将在短时间内无法访问。在此之后是否会释放adhoc类代码?

2 个答案:

答案 0 :(得分:3)

是的,在类加载器有资格进行垃圾收集之后,它加载的类也有资格进行垃圾收集(不提供对类的其他引用)。

答案 1 :(得分:0)

取决于你的意思“在此之后”。您无法强制垃圾收集器运行,环境本身将决定是否运行,即使您“明确调用”它。

实际上,调用gc来运行,只是“请求”它运行。

那么:是否会清除不再引用的变量?是。什么时候会发生?这个我们不能肯定地说。基本上,答案是:“当gc决定清理它时。”