java 强引用,软引用,弱引用(java 弱引用 虚引用区别)
今天给各位分享
小Hub领读:深层次分析,有谁看懂了,点个赞看看?我一脸懵逼进来,一脸懵逼出去~作者:木枣粽子https://juejin.im/post/6854573215767855117在 Java 中总共有 4 中核心的引用类型——强引用、软引用、弱引用、虚引用。
一般情况下我们往往用到强引用比较多,很少会遇到场景用到其他三种引用,所以对其原理的掌握就更加是一纸空白此次,恰遇机会就正好研究一下这四种引用的原理,以解己惑关于强引用,因为日常使用,大家基本都比较清楚,因此本文就不探究强引用这块。
除了上述的四种引用之外,还有一种引用类型,叫做 FinalReference,本文也同样不作探究本推广100种方式文主要探究软引用、弱引用和虚引用的原理以及区别源码分析无论是 SoftReference、WeakReference,还是 PhantomReference,事实上都继承了 Reference 类。
此处先直接贴出 Reference 的回收过程,
在整个 Reference 的回收过程中,JVM 层和 Java 层都参与了清理工作Java 层由于最终的清理工作是由 Java 层完成的,因此我们先从 Java 层作为切入点Reference 数据结构。
我们不妨先来看一看 Reference 的数据结构,publicabstractclassReference {private T referent推广100种方式;volatile ReferenceQueue