JVM 垃圾回收原理
我们为什么要进行垃圾回收呢?
因为在java 的运行过程中,我们都是只会创建对象,而没有显式的回收对象,导致对象一致存在于内存中
内存的空间是有限的,如果不对内存进行回收,后面的内存可能分配不成功,或者错误的把正在使用的内存持久化到硬盘
内存空间很贵,销毁不再使用的内存很重要
那么我们常见的整理内存整理机制有哪些呢
标记-整理
标记-复制
标记-清除
标记-整理
是指我们对内存存储的位置进行整理,正常的内存分配是怎么样的呢? 比如给你一段内存,1到100的块,我们把所有的内存区域都分配满了,这时我们查看有哪些内存是不再使用了,这时,我们可以把不再使用的内存清除,这时,内存可能存在碎片,导致不能分配跨越多个内存块的对象,这时我们可以使用内存整理模式,解决问题
标记-复制
是指把内存复制到不同的区域
标记-清除
是指直接把内存给清除,可能存在内存碎片
垃圾回收机制是指在上面的算法思想上,开发出一整套的垃圾回收产品
Serial
Serial Old
ParNew
Parallel Scavenge
Parallel Old
CMS
G1回收器
版权声明: 本文为 InfoQ 作者【不在调上】的原创文章。
原文链接:【http://xie.infoq.cn/article/63bebc9db032ecd055b9598db】。文章转载请联系作者。
评论