zoukankan      html  css  js  c++  java
  • Java引用

    在JDK1.2之前,引用的定义只是reference类型的数据中存储的数值代表的是另外一块内存的起始地址,那么这块内存就代表着一个引用;在这种情况下,一个对象只有被引用和没有被引用这两种状态;

    而在1.2之后,Java扩充了引用的概念:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference),四种引用强度依次减弱;

    • 强引用:强引用是我们在日常编码中使用最多的方式,类似Object obj = new Object();这类的引用就是强引用;强引用只要还存在,被引用的对象就永远不会被GC回收,哪怕报OOM错,系统奔溃;
    • 软引用:软引用可以用来表示一些有用但是非必须的对象,一个被软引用关联的对象,在内存不够,即将内存溢出异常之前,将会被标记成待回收对象而被回收掉,如果回收之后内存任然不够,才会OOM错误;使用方法是SoftReference<Object>  sr = new SoftReference<Object>(obj);通过sr.get();来获取对象,如果已经被标记成待回收对象GC掉,返回结果是null;
    • 弱引用:弱引用的强度比弱引用还要弱,被引用的对象不管内存是否足够,在下次垃圾回收时都会被回收掉,可以通过弱引用的isEnQueued方法获知对象是否被回收;
    • 虚引用:虚引用时强度最弱的,也被称为幽灵引用或幻影引用,虚引用对对象的生命周期完全没有影响,无法通过虚引用来获取对象,为一个对象设置虚引用的唯一目的就是在这个对象被回收时会收到系统通知,可以通过isEnQueued方法获知对象是否被回收;
  • 相关阅读:
    利用dns类和WMI规范获取IP及MAC地址
    vs2010编辑器中代码前的虚线问题
    项目发布方法
    HTML5 声明兼容IE的写法 asp.net 狼
    Jquery总结 狼
    IE、FF、Chrome、兼容性文章 狼
    sql游标实现行列转换 狼
    【狼的格言】 狼
    设计模式提升与加强一 狼
    读Head.First设计模式有感 狼
  • 原文地址:https://www.cnblogs.com/sjwlovewch/p/9571454.html
Copyright © 2011-2022 走看看