深机笔记

来源:互联网 发布:媒体的作用 知乎 编辑:程序博客网 时间:2024/05/21 20:04
3.2.3节
JDK1.2后,Java将引用分为强引用(StrongReference)、软引用(SoftReference)、弱引用(WeakReference)、虚引用(PhantomReference),4种引用强度依次逐渐减弱
1.强引用:
程序代码中普遍存在、类似"Objectobj=newObject()"的引用
只要强引用还存在,垃圾收集器永远不会回收被引用的对象
2.软引用:
还有用但并非必需的对象
系统发生内存溢出异常之前,会把软引用对象列进回收范围进行第二次回收,如果回收后还没有足够内存,才会抛出内存溢出异常
在JDK1.2之后,提供SoftReference类实现软引用
3.弱引用:
也用来描述非必需对象,但强度比软引用更弱一些
弱引用关联对象只能生存到下一次垃圾收集发生之前,垃圾收集器工作时,无论当前内存是否足够,都会回收掉只弱引用关联的对象
在JDK1.2之后,提供WeakReference类实现弱引用
4. 虚引用:
也称为幽灵引用、幻影引用,最弱的一种引用关系
对象是否有虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用取得对象实例
为对象设置虚引用关联的唯一目的是能在这个对象被收集器回收时收到一个系统通知
在JDK1.2之后,提供PhantomReference类实现虚引用
原创粉丝点击