导读:ThreadLocal的Entry为什么要继承WeakReference?弱引用GC的时候会回收?那么回收了,数据不会丢失吗?
首先得看一眼WeakReference
的代码,它继承自Reference
,这里有个get()
方法,代码如下:
注意这一句:
If this reference object has been cleared, either by the program or by the garbage collector, then this method returns null.
也就是说,referent
这个字段会在GC时被修改,而它经过GC后会变成null
。
再看问题中说的这个Entry
,代码在这里:
注意这一句: