一、强引用
强引描述一般必须存在的引用对象,例如Object obj = new Object();只要强引用存在,那么该对象的就不会被垃圾回收。
二、软引用
弱引用描述的是一般不是必须存在,但还是有用的引用对象,在jdk1.2的时候通过SoftReferece来进行实现,对于弱引用关联的对象,当内存不足的时候,在即将抛出内存溢出前,会对弱引用进行二次回收,如果回收后内存还是不足,那么才回抛出内存溢出的异常。
三、弱引用
弱引用也是描述非必须的存在的对象,在jdk1.2的时候通过WeakReferece来实现。
弱引用比软引用的弱一些,被关联的对象一般情况下只能存活在下次垃圾回收之前,无论内存是否足够,都会将弱引用关联的对象进行垃圾回收。
四、虚引用
虚引用也被称为虚幻的引用,它是最弱的一种引用关系。在jdk1.2之后通过PhomanReferece来实现。
一个对象是否存在虚引用都不会其生存的时间和周期造成影响,也无法通过虚引用来得到对象的实例,一般情况下,为一个对象关联虚引用的目的,就是当这个对象被回收时进行系统通知。
版权声明:本文为weixin_49576031原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。