jvm回收机制的三大算法
发布时间:2023-05-30 16:21:00
发布人:zyh
JVM回收机制的三大算法包括:
1. 标记-清除算法(Mark-Sweep): 这是最基本的垃圾回收算法,分为两个阶段:标记和清除。在标记阶段,通过某种方式遍历所有存活的对象,并标记它们;在清除阶段,清除所有未标记的对象(即未被引用的对象),并且将存活的对象进行压缩。(清楚未标记对象会产生大量内存碎片)
2. 复制算法(Copy):复制算法将内存区域分成两块,每次只使用其中一块,当这一块的空间满了之后,就将存活的对象复制到另一块中。在复制过程中可以进行内存压缩,同时也避免了内存碎片等问题。
3. 标记-整理算法(Mark-Compact):标记-整理算法在标记-清除算法的基础上进行了改进,它依然将所有存活对象标记,但在回收时并不是直接清除未标记的对象,而是把所有存活的对象移到一端,然后清除边界以外的所有空间。因此,标记-整理算法与复制算法相比,它没有浪费一半的内存,但需要进行存储器整理,开销更大。
这三种算法各有优缺点,JVM会根据不同情况和内存大小采用适当的算法组合来进行垃圾回收。
下一篇jvm调优主要是调哪里