如何做一名合格的网站人,wordpress 主题窜改,aws网站建设,北京建设部网站职称一、key是弱引用#xff0c;gc垃圾回收时会影响ThreadLocal正常工作吗 到这里#xff0c;有些小伙伴可能有疑问#xff0c;ThreadLocalMap的key既然是 弱引用#xff0c;那么GC时会不会贸然地把key回收掉#xff0c;进而影响ThreadLocal的正常使用呢#xff1f;答案是不会…一、key是弱引用gc垃圾回收时会影响ThreadLocal正常工作吗 到这里有些小伙伴可能有疑问ThreadLocalMap的key既然是 弱引用那么GC时会不会贸然地把key回收掉进而影响ThreadLocal的正常使用呢答案是不会影响ThreadLocal的正常工作的。原因如下虽然ThreadLocalMap的Entry的key是一个弱引用key为ThreadLocal但是栈中还有ThreadLocal ref在引用着ThreadLocal如下所示 二、代码证明
/*** Author : 一叶浮萍归大海* Date: 2023/11/22 14:36* Description: 证明gc时不会回收ThreadLocalMap的弱引用除非手动将变量设置为null*/
public class ThreadLocalWeaknessMainApp {public static void main(String[] args) {Object obj new Object();WeakReferenceObject weakReference new WeakReference(obj);System.out.println(GC回收之前 weakReference.get());System.gc();System.out.println(GC回收之后 weakReference.get());obj null;System.gc();System.out.println(对象设置为nullGC回收之后 weakReference.get());}}