面经-虚拟机-JVM垃圾回收算法
2022/8/26 14:25:18
本文主要是介绍面经-虚拟机-JVM垃圾回收算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JVM垃圾回收算法
标记:找到不能被作为垃圾回收的对象并标记。标记的对象保留,未被标记的对象作为垃圾释放。
标记清除法
标记:将一定不能被回收的根对象作为GC Root对象,从根对象出发,沿着它的引用链找当前对象有没有被根对象引用到。若是则不能被回收,加标记。若否,则不加标记,GC时释放掉。
清除:有标记则保留,没有标记则释放。
缺点:
释放后的内存不连续,造成内存碎片问题。需要连续内存时碎片内存不够用。
标记整理法(用于老年代的垃圾回收)
标记清除的基础上多了整理阶段。
整理:移动未被清除的对象朝一端靠拢,避免了内存碎片的问题。
缺点:
多了整理步骤,要重新计算内存的引用地址,内存复制等,效率会变低。
标记复制法(用于新生代的垃圾回收)
把内存分成两部分,一部分用来存对象,一部分作为空闲区域。将标记的需要存活的对象复制到空闲区域,复制完成后将原来那部分所有内容清空。此时空区域再作为空闲区域,复制后的区域作为存对象区域。整个过程不会有内存对象产生。且效率比标记整理高。
缺点:
占用了一份额外的内存。
这篇关于面经-虚拟机-JVM垃圾回收算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?