前言:
此刻小伙伴们对“jvm引用计数算法”可能比较关注,小伙伴们都需要分析一些“jvm引用计数算法”的相关文章。那么小编也在网摘上搜集了一些有关“jvm引用计数算法””的相关资讯,希望小伙伴们能喜欢,你们一起来了解一下吧!hi he有哪那些垃圾回收算法?
大家好!今天我们来聊一下hm中的垃圾回收算法。首先我们需要知道如何判断一个对象是否已经死亡。这里有两种算法:引用计数器算法和可达性分析算法。
·接下来我们来介绍一下垃圾回收算法。
→首先是标记清除算法。这个算法会标记需要回收的对象然后进行清除,但是这会带来一个新的问题--内存碎片化,如果下次需要分配较大的内存空间可能会出现无法找到足够连续内存的情况,从而不得不再次触发垃圾回收。
→然后是复制算法。这是Java堆中新生代的垃圾回收算法,它的步骤如下:
→1.标记待回收内存和不用回收内存。
→2.将不用回收的内存复制到新的内存区域。
→3.就的内存区域就可以被全部回收了,而新的内存区域也是连续的。
但是复制算法也有缺点,它会损失部分系统内存,因为需要腾出部分内存进行复制。
·最后是标记压缩算法。这是Java堆中老年代的垃圾回收算法,对于新生代大部分对象都不会存活,所以复制算法较高效,但对于老年代大部分对象可能要继续存活。如果此时使用复制算法效率会降低。
标记压缩算法首先还是标记,将不用回收的内存对象压缩到内存一端pace,此时即可清除边界处的内存,这样就能避免复制算法带来的效率问题,同时也能避免内存碎片化的问题。老年代的垃圾回收算法称为"Major GC"。
希望这些内容对大家有所帮助!