Java内存泄漏故障排除:最终确定?
我有一个行为不端的应用程序,似乎泄漏了。经过简短的探查器调查后,大多数内存 (80%) 由实例持有。我怀疑终结器无法运行。java.lang.ref.Finalizer
造成这种情况的一个常见原因似乎是终结器引发的异常。但是,该类方法的javadoc(例如,请参阅此处)似乎自相矛盾:它声明finalize
Object
如果 finalize 方法引发未捕获的异常,则忽略该异常并终止该对象的终结。
但后来,它还指出
finalize 方法引发的任何异常都会导致此对象的终结停止,否则将被忽略。
我应该相信什么(即,最终确定是否停止?),你对如何调查这种明显的泄漏有什么建议吗?
谢谢