弱引用,软引用

  • 强引用,只要有引用指向一个对象,对象就不会被回收
  • 软引用,一个对象只有一个软引用指向它,当系统内存不够用的时候,会回收软引用指向的对象,内存够用不会回收它。
  • 弱引用,一个对象只有一个弱引用指向它,那么就会被回收。用处在与,此时也有强引用指向那个对象时,只要强引用消失,那么这个对象就要被回收。一般用在容器。

ThreadLocal 内部用到了弱引用。

ThreadLocal<M> tl = new ThreadLocal<>();
        tl.set(new M());
        tl.remove(); //不需要的时候要remove,防止内存泄露
image.png

这边tl消失,指向的ThreadLocal对象会被回收

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容