JVM 垃圾回收原理

用户头像
不在调上
关注
发布于: 2020 年 08 月 04 日

我们为什么要进行垃圾回收呢?

  1. 因为在java 的运行过程中,我们都是只会创建对象,而没有显式的回收对象,导致对象一致存在于内存中

  2. 内存的空间是有限的,如果不对内存进行回收,后面的内存可能分配不成功,或者错误的把正在使用的内存持久化到硬盘

  3. 内存空间很贵,销毁不再使用的内存很重要



那么我们常见的整理内存整理机制有哪些呢

  1. 标记-整理

  2. 标记-复制

  3. 标记-清除

  • 标记-整理

是指我们对内存存储的位置进行整理,正常的内存分配是怎么样的呢? 比如给你一段内存,1到100的块,我们把所有的内存区域都分配满了,这时我们查看有哪些内存是不再使用了,这时,我们可以把不再使用的内存清除,这时,内存可能存在碎片,导致不能分配跨越多个内存块的对象,这时我们可以使用内存整理模式,解决问题

  • 标记-复制

是指把内存复制到不同的区域

  • 标记-清除

是指直接把内存给清除,可能存在内存碎片



垃圾回收机制是指在上面的算法思想上,开发出一整套的垃圾回收产品

  • Serial

  • Serial Old

  • ParNew

  • Parallel Scavenge

  • Parallel Old

  • CMS

  • G1回收器

发布于: 2020 年 08 月 04 日 阅读数: 29
用户头像

不在调上

关注

还未添加个人签名 2018.04.28 加入

还未添加个人简介

评论

发布
暂无评论
JVM 垃圾回收原理