面经-虚拟机-JVM垃圾回收算法

JVM垃圾回收算法

标记:找到不能被作为垃圾回收的对象并标记。标记的对象保留,未被标记的对象作为垃圾释放。

标记清除法

标记:将一定不能被回收的根对象作为GC Root对象,从根对象出发,沿着它的引用链找当前对象有没有被根对象引用到。若是则不能被回收,加标记。若否,则不加标记,GC时释放掉。

清除:有标记则保留,没有标记则释放。

缺点:

释放后的内存不连续,造成内存碎片问题。需要连续内存时碎片内存不够用。

 

 

标记整理法(用于老年代的垃圾回收)

标记清除的基础上多了整理阶段。

整理:移动未被清除的对象朝一端靠拢,避免了内存碎片的问题。

缺点:

多了整理步骤,要重新计算内存的引用地址,内存复制等,效率会变低。

 

 

标记复制法(用于新生代的垃圾回收)

把内存分成两部分,一部分用来存对象,一部分作为空闲区域。将标记的需要存活的对象复制到空闲区域,复制完成后将原来那部分所有内容清空。此时空区域再作为空闲区域,复制后的区域作为存对象区域。整个过程不会有内存对象产生。且效率比标记整理高。

缺点:

占用了一份额外的内存。

 

 

 

 
posted @   临易  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示