都不使用。
尝试使用资源从资源泄漏中恢复
Cleaner所面临的挑战几乎
finalize与最坏的挑战一样多,正如Holger提到的那样,这是过早的完成过程(不仅是
finalize软/弱/幻象引用的问题,而且这也是一个问题)。即使您尽最大努力正确地实现了终结(同样,我的意思是任何使用软/弱/幻象引用的系统),您也无法保证资源泄漏不会导致资源耗尽。不可避免的事实是GC不了解您的资源。
相反,您应该假定资源将被正确关闭,查找并修复错误,而不是希望解决这些错误,并且仅 将finalization(以任何形式使用)用于调试 。
资源泄漏必须得到解决-不能解决。
为此,我建议看看Netty派生的almson-refcount。它提供了基于弱引用的高效资源泄漏 检测器
,以及可选的引用计数工具,该工具比通常的AutoCloseable更加灵活。它的泄漏检测器之所以出色,是因为它提供了不同级别的跟踪(具有不同的开销),并且您可以使用它来捕获堆栈跟踪,以了解泄漏对象的分配和使用位置。



