Java 是否打开静态字段以进行垃圾回收?

给定仅在程序设置中使用的假设实用程序类:

class MyUtils {

private static MyObject myObject = new MyObject();

/*package*/static boolean doStuff(Params... params) {

// do stuff with myObject and params...

}

}

不再使用myObject时会对其进行垃圾回收,还是在程序的生命周期内始终存在?

回答:

加载类时,不能选择静态变量进行垃圾回收。当各自的类加载器(负责加载此类)本身被收集为垃圾时,可以收集它们。

查看JLS第12.7节卸载类和接口

仅当垃圾回收器可以回收定义的类加载器时,才可以卸载类或接口。引导加载器加载的类和接口可以不卸载。

以上是 Java 是否打开静态字段以进行垃圾回收? 的全部内容, 来源链接: utcz.com/qa/401320.html

回到顶部