首页 >Java >java教程 >静态字段什么时候可以被垃圾收集?

静态字段什么时候可以被垃圾收集?

Linda Hamilton
Linda Hamilton原创
2024-11-30 18:51:19237浏览

When Can Static Fields Be Garbage Collected?

静态字段何时符合垃圾回收条件?

只要加载了包含静态变量的类,垃圾回收器就永远不会卸载该类。即使不再使用该类,静态变量在程序运行期间仍保留在内存中。

示例

class MyUtils {
   private static MyObject myObject = new MyObject();
   /*package*/static boolean doStuff(Params... params) {
       // do stuff with myObject and params...
   }
}

在此示例中,myObject 是静态变量,因此它在卸载 MyUtils 类之前,将不符合垃圾回收的条件。由于类永远不会被卸载,myObject 将在程序的整个生命周期中保留在内存中。

异常

JLS 第 12.7 节类和接口的卸载指出类或接口只能被如果其定义的类加载器可以被垃圾收集器回收,则卸载。引导加载程序加载的类和接口可能无法卸载。

以上是静态字段什么时候可以被垃圾收集?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn