1个月前
讲的不清楚,应该从局部变量的作用域的角度来讲:假设一个方法体里面new ThreadLocal,set了一个值,然后方法体执行完了怎么样。假设不用弱引用,由于设置的key和value都保存在Thread对象里,Thread没有结束,强引用,导致作为ThreadLocal的key也无法被回收,由于跳出了方法体,方法体里面的局部变量竟然无法回收,且无法再次找回这个key,时间长了,就会导致key和value越来越多,导致内存泄露。所以在Thread的entity的key和ThreadLocal对象间采用弱引用,当垃圾回收引用断开,跳出方法体时,由于ThreadLocal对象没有了引用,所以就可以被回收了,然后在get set 的时候顺便清理key为null的值,确保值的内存也被回收
7个月前
评论于:彻底关闭烦人的弹屏快应用
8个月前
9个月前
10个月前
10个月前
10个月前



![表情[hanxiao] - 宋马](https://bbs.songma.com/wp-content/themes/zibll/img/smilies/hanxiao.gif)
