这三类Reference按照引用强度依次是
Soft(软引用) > Weak(弱引用) > Phantom(虚引用)
一个对象只有软引用,则垃圾回收器会在内存不足的时候才回收它
一个对象只有弱引用,则无论内存是否不足,垃圾回收器扫描到它的时候都会回收它
一个对象只有虚引用,则生命周期等同于没有任何引用,垃圾回收器在任何时候都可能回收它,虚引用往往是用来跟踪垃圾回收器的回收活动
这三类引用在构造的时候都可以传入一个ReferenceQueue(虚引用则是必须传入一个ReferenceQueue),区别在于软引用和弱引用本身是在所引用的对象被释放后才会被放入ReferenceQueue, 而虚引用本身是在所引用的对象即将被释放之前就被放入ReferenceQueue, 所以我们可以监控这个ReferenceQueue, 在对象被释放之前做一些操作。
SoftReference vs WeakReference vs PhantomReference
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言 不知道大家有没有这样一种感觉,程序员的数量井喷了。可能是因为互联网火了,也可能是各家培训机构为我们拉来了大量...
- Java引用的种类 1.对象在内存中的状态 对于JVM的垃圾回收机制来说,是否回收一个对象的标准在于:是否还有引用...
- 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...