JVM源码中FinalReference的详细解析是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2664个文字,预计阅读时间需要11分钟。
概述:JAVA对象引用体系除了强引用外,还提供了软引用、弱引用、虚引用和最终引用等四种其他引用方式,以应对不同的内存管理和性能需求。
JAVA对象引用体系除强引用外,还包含以下四种引用类型:
1. 软引用(SoftReference)
2.弱引用(WeakReference)
3.虚引用(PhantomReference)
4.最终引用(FinalReference)
软引用主要考虑性能和可扩展性,适用于缓存等场景;弱引用则用于实现更灵活的内存管理;虚引用用于实现对象销毁后的资源回收;最终引用则用于实现对象生命周期管理。
概述
JAVA对象引用体系除了强引用之外,出于对性能、可扩展性等方面考虑还特地实现了四种其他引用:SoftReference、WeakReference、PhantomReference、FinalReference,本文主要想讲的是FinalReference,因为我们在使用内存分析工具比如zprofiler、mat等在分析一些oom的heap的时候,经常能看到 java.lang.ref.Finalizer占用的内存大小远远排在前面,而这个类占用的内存大小又和我们这次的主角FinalReference有着密不可分的关系。
本文共计2664个文字,预计阅读时间需要11分钟。
概述:JAVA对象引用体系除了强引用外,还提供了软引用、弱引用、虚引用和最终引用等四种其他引用方式,以应对不同的内存管理和性能需求。
JAVA对象引用体系除强引用外,还包含以下四种引用类型:
1. 软引用(SoftReference)
2.弱引用(WeakReference)
3.虚引用(PhantomReference)
4.最终引用(FinalReference)
软引用主要考虑性能和可扩展性,适用于缓存等场景;弱引用则用于实现更灵活的内存管理;虚引用用于实现对象销毁后的资源回收;最终引用则用于实现对象生命周期管理。
概述
JAVA对象引用体系除了强引用之外,出于对性能、可扩展性等方面考虑还特地实现了四种其他引用:SoftReference、WeakReference、PhantomReference、FinalReference,本文主要想讲的是FinalReference,因为我们在使用内存分析工具比如zprofiler、mat等在分析一些oom的heap的时候,经常能看到 java.lang.ref.Finalizer占用的内存大小远远排在前面,而这个类占用的内存大小又和我们这次的主角FinalReference有着密不可分的关系。

