你关于 JavaGC 的知识都是从哪儿学习的呢?是看博客或者看书还是看 oracle 的文档?今天来推荐 Plumbr.io上的一个文章(Plumbr 是一家提供 jvm 监控和优化方案的公司),标题叫《Java Garbage Collection handbook》整个文章大概有 75 页,包括 GC 概念介绍/算法介绍/算法实现/gc 调优等 7 个小节,这里只引用其中几个段落,来看一下作者是怎么介绍 JavaGC 知识的.
形象地概括 Garbage Collection
在费曼学习法中有这样一个逻辑:如果你不能把一个概念简化到让一个小孩子都能理解,那么说明你还没有掌握它. 在 plumbr.io 的文档第一节,作者形象地把 gc 和生活中的清理垃圾做对比: 打扫垃圾时我们会把垃圾挑出来然后扔掉, 而 gc 的过程是把需要保留的内存对象挑出来, 然后清理剩下的部分. 在文章开始先给出通俗又准确的定义,让别人对核心概念有一个认识.
At first sight, garbage collection should be dealing with what the name suggests – finding and throwing away the garbage. In reality it is doing exactly the opposite. Garbage Collection is tracking down all the objects that are still used and marks the rest as garbage.