When would the garbage collector erase an instance of an object that uses Singleton pattern?(垃圾收集器何时会擦除使用单例模式的对象的实例?)
问题描述
垃圾收集器何时会清除使用单例模式的对象实例?
When would the garbage collector erase an instance of an object that uses Singleton pattern?
物体是否比普通物体停留的时间更长?
Does an object hang around any longer than a regular object?
如何在 Java 中手动强制删除/垃圾回收对象?
How can you manually force deletion/garbage collection of an object in Java?
谢谢.
推荐答案
有一个对单例的静态引用,所以在类加载器符合垃圾回收条件之前,它不符合垃圾回收条件.
There's a static reference to a singleton, so it won't be eligible for garbage collection until the classloader is eligible for garbage collection.
您不能强制对任何对象进行垃圾回收;您可以请求垃圾收集器使用 System.gc() 但这只是一个请求.
You can't force any object to be garbage collected; you can request that the garbage collector runs with System.gc() but it's only a request.
如果您真的想让单例"符合垃圾回收的条件,您可能希望有一种方法将静态变量设置为 null(并希望没有其他任何东西获取引用的副本).显然,下次有人请求实例时,需要重新创建它……当然,此时它并不是真正的单例.
If you really want to make a "singleton" eligible for garbage collection, you'd probably want to have a method to set the static variable to null (and hope that nothing else had taken a copy of the reference). Obviously the next time anyone asked for an instance, it would need to be recreated... at which point it's not really a singleton, of course.
这篇关于垃圾收集器何时会擦除使用单例模式的对象的实例?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:垃圾收集器何时会擦除使用单例模式的对象的实例?
基础教程推荐
- 验证是否调用了所有 getter 方法 2022-01-01
- 多个组件的复杂布局 2022-01-01
- 大摇大摆的枚举 2022-01-01
- 在 Java 中创建日期的正确方法是什么? 2022-01-01
- 不推荐使用 Api 注释的描述 2022-01-01
- Java 实例变量在两个语句中声明和初始化 2022-01-01
- 从 python 访问 JVM 2022-01-01
- 如何在 JFrame 中覆盖 windowsClosing 事件 2022-01-01
- 如何在 Spring @Value 注解中正确指定默认值? 2022-01-01
- Java Swing计时器未清除 2022-01-01
