• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:深入理解JVM五垃圾收集算法

java 搞代码 3年前 (2022-01-28) 18次浏览 已收录 0个评论

1.标记-革除算法

2.复制算法

3.标记-整顿算法

4.分代收集算法

1.标记-革除算法
最简略的还是标记-革除算法,它的做法是首先依据可达性剖析算法,标记出所有须要回收的对象,在标记实现后对立回收所有被标记的对象。
如图所示:

咱们能够看出,在收集完垃圾之后,内存会产生大量不间断的碎片,当前调配对象时,可能会造成内存不足。

长处:实现简略。
毛病:
效率问题:标记和革除两来源gao($daima.com搞@代@#码网项效率都不高
空间问题:标记革除后会产生大量不间断的内存碎片,当前调配较大对象时,可能会导致无奈失去间断内存而登程另一次垃圾收集操作。

2.复制算法
复制算法的特点是。咱们先将内存容量按等同大小划分成两块,每次只应用其中的一块,当这一块内存用完了,就将还存活的对象复制到另外一块下面,而后再把曾经应用过的内存空间一次性清理掉。

长处:不会产生内存碎片。
毛病:
可用空间会降落至原来的一半。

咱们之前解说GC过程的时候,呈现了两个survivor区域,用的就是这个算法。
深刻了解JVM(三)——堆的构造,GC过程以及调优参数简介

3.标记-整顿算法
咱们先标记要回收的对象,而后将存活的对象往一端挪动,最初间接清理掉端边界以外的内存。

长处:解决内存碎片问题。

毛病:整顿阶段,因为挪动了可用对象,须要去更新援用。

4.分代收集算法

以后虚拟机都采纳这种算法,依据对象存活的周期把不同的内存划分成几块,而后采纳各个年代最适宜的收集算法。
新生代中,每次都有大量对象死去,就采纳复制算法。
老年代中存活率高,没有额定空间进行调配担保,就是用标记-整顿,或者标记-清理算法进行回收。

明天咱们介绍了几种垃圾回收算法,以及他们的优缺点。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:深入理解JVM五垃圾收集算法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址