Java中的四种引用类型
Java中使用对象都是通过引用,很常见的就是通过new获取一个对象引用来进行后续操作。实际上在Jdk1.2之后,Java中对引用的概念做了扩充,四种引用类型,引用强度由强到弱依次为强引用>软引用>弱引用>虚引用。强引用:程序代码中普遍存在的一般引用,比如Object obj=new Object();就是一个强引用。只要强引用存在(GC Root可达),垃圾回收期永远不会回收被引用的对象。软引用:软引用关联的对象在系统将要OOM时会再次回收软引用关联的对象,如果回收后仍然没有足够的内存就会抛出OOM异常。java.lang.ref.SoftReference弱引用:弱引用关联的对象只生存到下一次垃圾收集之前,垃圾收集发生时,无论当前内存是否足够都会回收掉弱引用对象。java.lang.ref.WeakReference虚引用:虚引用是最弱的引用关系,虚引用的存在不会对对象的生存时间有影响,也无法通过虚引用获得对象实例,唯一的作用就是被收集器回收时可以收到一个系统通知。java.lang.ref.PhantomReference查阅jdk源码可以看到,java.lang.ref包下抽象父类Reference,SoftReference, WeakReference, PhantomReference都继承自Reference类。另外还有ReferenceQueue, FinalReference不知道干什么的。
今日笔记
最新推荐文章于 2024-02-01 11:14:45 发布