标签:描述 保留 sof 引用 实现 时间 ase bsp enc
1、概述
1.1、JDK1.2前,java中引用的定义:
如果 引用类型数据 存储的是 另一块内存的起始地址,就称 这块内存代表一个引用(一个对象 只有 被引用、未被引用 2种状态);
1.2、有些场景下,当内存足够时,对象可以保留在内存中,如果 内存在垃圾回收后仍然紧张,可以抛弃这些对象;
1.3、JDK1.2后,提供了 (引用强度依次减弱)
强引用(Strong Reference):
类似 Object o=new Object(),只要强引用存在,GC永远不会回收被引用的对象;
软引用(Soft Reference):
作用: 描述 一些 有用 但 非必需的对象;
软引用 关联的对象,在 系统将要发生内存溢出之前,将会把软引用对象 列入 回收范围内 进行 第二次回收;
JDK提供了SoftReference类实现软引用;
弱引用(Weak Reference):
作用: 描述 一些 有用 但 非必需的对象;
弱引用 关联的对象,只能生存到下次GC之前,下一次GC 会进行回收;
JDK提供了WeakReference类实现弱引用;
虚引用(Phantom Reference):
作用: 为一个对象设置 虚引用,目的希望能 在这个对象被GC时 收到一个系统通知;
又称为 幽灵引用、幻影引用;
一个对象 是否存在 虚引用,不会 对其生存时间构成影响,无法通过虚引用 取得一个对象实例;
JDK提供 PhantomReference类实现虚引用;
标签:描述 保留 sof 引用 实现 时间 ase bsp enc
原文地址:https://www.cnblogs.com/anpeiyong/p/12698592.html