编程语言
首页 > 编程语言> > 面经-虚拟机-JVM垃圾回收算法

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

作者:互联网

JVM垃圾回收算法

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

标记清除法

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

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

缺点:

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

 

 

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

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

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

缺点:

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

 

 

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

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

缺点:

占用了一份额外的内存。

 

 

 

 

标签:标记,对象,虚拟机,面经,回收,区域,内存,JVM,垃圾
来源: https://www.cnblogs.com/lysboke/p/16624654.html