课件和 Demo 地址
https://gitee.com/geektime-geekbang/geek_netty
作者回复: 嗯,你总结的挺全面的,其实这块很饶人,像你这样分块看挺好!
作者回复: 这里你抓住几个关键点: 1 GC的时候,堆内引用不可达了,所以才被回收了,所以错失了主动释放的机会; 2 弱引用对象的回收就和普通对象一样,所以开始加到list后,假设没有释放,会在list里面,所以有人指向它,所以它不会被回收掉。所以后面refQueue才能拿出对象看看在不在list里面。
作者回复: 谢谢提醒,最早是linked list.现在是set.不知道以后变成什么,不同版本都不一样都,以后也不知道变成什么,不过大体思路都是一样的:判断集合里有没有这个对象来判断gc后的对象引用计数有没有到0。