zoukankan      html  css  js  c++  java
  • 你不可不知的Java引用类型之——WeakReference源码详解

    定义

    WeakReference是弱引用,该引用不会影响垃圾回收器对对象的回收,不会影响对象的生命周期。

    说明

    当虚拟机在某个时间点决定要回收一个弱可达(weakly-reachable)对象时,会自动清除该对象的所有弱引用。并且会将对象变为finalizable状态,然后把这些刚清除的弱引用放到其注册的引用队列中。

    [前面已经说明过WeakReference的用法了,本篇仅对WeakReference从源码角度做一些补充。

    源码

    public class WeakReference<T> extends Reference<T> {
        public WeakReference(T referent) {
            super(referent);
        }
        
        public WeakReference(T referent, ReferenceQueue<? super T> q) {
            super(referent, q);
        }
        
    }
    

    嗯,十行代码,可以说是很简单的一个类了,只有两个构造函数,一个传引用队列,另一个不传,没有覆盖父类Reference的任何方法。

    WeakHashMap

    说到WeakReference,自然不能不说WeakHashMap,这个map的用法与hashmap基本一致,它的特点便是使用弱引用作为key,这就让它有一个很重要的特性,它可以自动清除自身,这样就不需要再像之前SoftReference那样需要手动去释放引用实例。

    关于WeakHashMap会在另一篇中有详细的介绍,这里就不多说了。

    好像。。。没什么可讲的了。在前面弱引用一篇里基本都讲完了。

  • 相关阅读:
    (摘)Zebra打印机异常处理
    (摘)Chart Y轴设置为百分比
    关于ZFS、GPT、4K、Geom Label的一些说明
    (转)ASP.NET性能优化之分布式Session
    (转)WebService的事务处理
    SqlSever分页查询,仅扫描一次表
    (转)对.net系统架构改造的一点经验和教训
    字典树
    Ajax
    Lunix 命令
  • 原文地址:https://www.cnblogs.com/mfrank/p/10221793.html
Copyright © 2011-2022 走看看