这三类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...