深入理解java虚拟机之垃圾收集器

 2019-12-22 10:38  阅读(782)
文章分类:JVM

如果说手机算法是垃圾回收的方法论,那么垃圾收集器就是内存回收的具体表现,java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大的差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代多使用的收集器,这里头论的收集器主要是基于JDK1.7Updata 14之后的HotSpot虚拟机(在这个版本中正式提供了商用的GI收集器,之前GI仍处于实验状态,这个虚拟机包含的所有收集器如图所示)

2019120001163\_1.png

上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。接下来笔者将逐介绍这些收集器的特性、基本原理和使用场景, 并重点分析 CMS和G1这两款相对复杂的收集器,了解它们的部分运作细节。

在介绍这些收集器各自的特性之前,我们先来明确一个观点:虽然我们是在对各个收集器进行比较,但并非为了挑选出一个最好的收集器。因为直到现在为止还没有最好的收集器出现,更加没有万能的收集器,所以我们选择的只是对具体应用最合适的收集器。这点不需要多加解释就能证明:如果有一种放之四海皆准、任何场景下都适用的完美收集器存在,那HotSpot虚拟机就没必要实现那么多不同的收集器了。
(下一篇博客将主要介绍这几种收集器)

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 深入理解java虚拟机之垃圾收集器

相关推荐