为什么不收集对象?
问题:为什么处理程序不被收集?
我的程序中可能有内存泄漏。 我做了堆转储(下图),我不明白的结果。
我有一个处理程序,我认为它应该收集,但不是。 有两个引用,一个是WeakReference
,不应该是一个问题,另一个引用混淆了我。
处理程序在Runnable
引用(实际上是一个kotlin lambda), Runnable
被添加到HashMap
。 现在看来HashMap
是在循环中自己引用的,但是java GC可以处理循环引用吗?
我敢肯定,当我做堆转储的方法releaseNativeMethodDescriptors
完成。