你可以看看参考文献.如果使用引用引用该类,则在删除所有常规引用时,它不会阻止对象被垃圾回收.Reference当收集器确定要收集哪些对象时,类所持有的引用不计算在内.当然,听众必须正确处理参考突然消失.只要你需要上课,你就必须确保有东西保持定期参考.
查看此主题以获得有关软引用和弱引用之间差异的讨论.Java中的软引用和弱引用有什么区别?
没有明确,没有.这有一个很好的理由 - 它不是垃圾收集在Java中的工作方式!
如果你真的想这样做(虽然我主要是出于学术目的而这么说,我强烈建议不要这样做)我能想到的最佳方法可能是在WeakReferences中包含对象的所有引用,并传递那些周围,只是保持对你的对象的一个强引用.如果将该强引用设置为null,则对该对象的所有弱引用都有资格进行垃圾回收.
当然,您需要注意,只要硬引用设置为null,WeakReferences就可以随时随机消失.因此,您需要确保使用它们的所有代码都已准备就绪.
也就是说,这条路线几乎不是最好的路线,并且会使你的代码难以维护!确保它们全部被释放,因为它们很好地超出范围将是更好的替代方案,并且如果其余代码足够整洁则不应该很难.