zoukankan      html  css  js  c++  java
  • GC引用类型

    无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象是否可达,判定对象是否可被回收都与引用有关。

    Java 提供了四种强度不同的引用类型。

    1. 强引用

    被强引用关联的对象不会被回收。

    使用 new 一个新对象的方式来创建强引用。

    Object obj = new Object();

    2. 软引用

    被软引用关联的对象只有在内存不够的情况下才会被回收。

    使用 SoftReference 类来创建软引用。

    Object obj = new Object();
    SoftReference<Object> sf = new SoftReference<Object>(obj);
    obj = null;  // 使对象只被软引用关联

    3. 弱引用

    被弱引用关联的对象一定会被回收,也就是说它只能存活到下一次垃圾回收发生之前。

    使用 WeakReference 类来创建弱引用。

    Object obj = new Object();
    WeakReference<Object> wf = new WeakReference<Object>(obj);
    obj = null;

    4. 虚引用

    又称为幽灵引用或者幻影引用,一个对象是否有虚引用的存在,不会对其生存时间造成影响,也无法通过虚引用得到一个对象。

    为一个对象设置虚引用的唯一目的是能在这个对象被回收时收到一个系统通知。

    使用 PhantomReference 来创建虚引用。

    Object obj = new Object();
    PhantomReference<Object> pf = new PhantomReference<Object>(obj, null);
    obj = null;
  • 相关阅读:
    【作业4】测试作业-兴趣问题清单
    【读后感3】高效程序员的45个习惯
    【作业3】关于C语言的问卷调查
    【作业2】价值观作业
    Spring的零配置
    Spring容器中bean的作用域
    Spring注入方式
    Spring整合Struts2
    my first go
    Struts2对ajax的支持
  • 原文地址:https://www.cnblogs.com/zhuii/p/13394713.html
Copyright © 2011-2022 走看看