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.
这篇关于垃圾收集器何时会擦除使用单例模式的对象的实例?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:垃圾收集器何时会擦除使用单例模式的对象的实例?
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01