本文介绍了垃圾收集器何时会清除使用Singleton模式的对象的实例?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

垃圾收集器何时会清除使用Singleton模式的对象的实例?

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.

你不能强制任何对象被垃圾收集;您可以通过,但这只是一个请求。

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.

如果你真的想让一个单身人士符合垃圾收集条件,你可能希望有一个方法来将静态变量设置为空(并且希望没有其他的使用引用的副本)。显然,下一次有人要求一个实例,它将需要重新创建...在这一点上,它不是一个真正的单身,当然。

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.

这篇关于垃圾收集器何时会清除使用Singleton模式的对象的实例?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-11 18:14