0
点赞
收藏
分享

微信扫一扫

弱引用与虚引用使用总结

hoohack 2022-04-04 阅读 61
java

#弱引用与虚引用使用总结

1)内存泄漏监控

有线程栈指向的强引用断开后(count计数减为0了表示断开了),此时要马上切断与堆中实例关联的虚引用,当gc回收堆中实例后,就不会往引用队列中添加虚引用了,此时就表示内存释放成功,而没有泄露;

2) 堆外内存回收

虚引用关联了一个DirectByteBuffer实例,当该实例的强引用断开后,gc会回收该实例,并且将虚引用放入引用队列,后台线程检测到会执行clean方法,释放堆外内存;

3)threadLocalMap中entry中用若引用与key关联

此时key的另一头强引用断开后,gc就可以直接回收了,此时entry中拿到的key为null,即表示元素已被回收,这边就可以处理value和entry了;

举报

相关推荐

0 条评论