四种引用类型
1、强引用(Strongly Reference) :类似 “Object obj = new Object()” 这种引用关系,无论任何情况下,只要强引用关系存在,垃圾收集器就永远不会回收掉被引用的对象。
2、软引用(Soft Reference) :描述一些还有用,但非必须的对象,只被软引用关联着的对象,在系统将要发生内存溢出异常前会把这些对象回收,如果这次回收还没有足够的内存,才会抛出内存溢出异常。(适用于缓存机制)
3、弱引用(Weak Reference) :也是描述非必须的对象,强度比软引用弱一些,被弱引用关联的对象只能生存到下一次垃圾收集发生为止。当垃圾收集开始工作,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。(适用于存储元数据,如:存储ClassLoader引用。如果没有类被加载,那么也没有指向ClassLoader的引用。一旦上一次的强引用被去除,只有弱引用的ClassLoader就会被回收。)
4、虚引用(Phantom Reference) :也称为 “幽灵引用” 或者 “幻影引用”,是最弱的一种引用关系。一个对象是否由虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用来取得一个对象的实例。为一个对象设置虚引用的唯一目的是为了能在这个对象被回收器回收的时候收到一个系统通知。(常用于管理直接内存,也叫堆外内存)
2023-08-15 广告