• 【JVM之美】引用类型


    无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象是否可达,判断对象是否被回收都与引用有关,
    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 obj2 = new Object();
    WeakReference<Object> weakReference = new WeakReference<Object>(obj2);
    obj2 = null;
    

    4、虚引用

    又称为幽灵引用或者幻影引用,一个对象是否有虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用获取一个对象
    为一个对象设置虚引用关联的唯一目的就是能在这个对象被回收时能收到一个系统通知。
    使用PhantomReference来实现虚引用

    //虚引用
    Object obj3 = new Object();
    PhantomReference<Object> phantomReference = new PhantomReference<Object>(obj1);
    obj3 = null;
    
  • 相关阅读:
    Path文件操作实例
    Cache缓存对象缓存对象
    Session对象实例
    移动端适配问题
    webpack4 优化性能
    webpack源码分析
    wepack源码解析1
    webpack面试题
    asnyc await
    node 知识
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860669.html
Copyright © 2020-2023  润新知