在JDK1.2之后,Java将引用的概念进行了扩充,一共分为四类,对可达性分析法来判断一个对象是否还有用具有很大的意义。
一.强引用:
这是一种程序中普遍存在的引用关系,例如Object A = new Object(),这类引用只要还存在,对象就永远不会被回收。
二.软引用
这类引用用来描述一些还有用但是并不是必须的对象,存在软引用的对象会在系统要发生内存溢出时被回收掉。
三.弱引用
这类引用关系被用来描述非必须的对象,存在弱引用的对象只会生存到下一次垃圾回收之前,当第二次垃圾回收发生时,不管内存是够够用都会回收存在弱引用关系的对象。
四.虚引用
这类引用又被称为又被称为幽灵引用或者幻影引用,这种引用关系最弱,这种引用关系的存在完全不会影响对象的生存时间,虚引用也不能用来获取用户实例。对象存在这种引用关系存在的唯一目的就是在对象被垃圾回收器回收时收到一个通知。