将引用的状态进行细分,不仅仅只有引用和不被引用这两种状态

将其细分为了

强引用

软引用

弱引用

虚引用 4种

按照引用强度依次逐渐减弱

强引用就是在程序代码中,最为常见的声明对象的代码,类似 Object ob = new Object()

对象的这种引用只要还在,就不会被回收掉

软引用,就是一些有用但非必须的东西,在可能出现内存溢出的问题的时候,将这些对象放进回收范围内进行第二次的Gc,

常见的使用就是利用SoftReference类

弱引用,同样是关于非必需对象的,强度弱于软引用

也就是说,只要发生了GC,就会标记他,他也只会活到下一次垃圾收集发生前,在发生了GC后,就直接回收掉被弱引用关联的对象,在Java中是通过weakReference类来实现弱引用的

最后一个虚引用的实现,是最弱的引用关系,为一个对象设置了虚引用唯一的作用就是在这个对象被回收的时候可以获得一个通知,其的实现方式则是利用了PhantomReference类

发表评论

邮箱地址不会被公开。 必填项已用*标注