本教程操作环境:windows7系统、java10版,DELL G3电脑。
1.概念
垃圾收集器时之前列举的垃圾收集算法的具体实现。
2.注意事项
每一个回收器都存在Stop The World 的问题,只不过各个回收器在Stop The World 时间优化程度、算法的不同,可根据自身需求选择适合的回收器。
3.垃圾收集器图解
上图是经典的几个垃圾收集器,上面属于新生代,下面属于老年代,而其中G1的内存划分不是依据新生代和老年代来划分的。
两个重要概念:
并行:垃圾收集器可以开启多个垃圾收集线程并行进行标记、清理等处理。
并发:垃圾收集器的标记、清理线程和用户线程同时运行。
4.常见垃圾收集器
(1) Serial收集器
Serial收集器作用于新生代,是一个单线程收集器,基于复制算法实现。在进行垃圾回收的时候仅使用单条线程并且在回收的过程中会挂起所有的用户线程(Stop The World)。Serial收集器是JVM client模式下默认的新生代收集器。
(2)ParNew收集器
新生代收集器,Serial的多线程并行版本,行为与Serial一致,同时使用多条垃圾收集线程进行垃圾收集。
特点:除了Serial收集器外,只有它能与CMS收集器配合工作。
以上就是java中gc算法的实现,需要我们对垃圾收集器有基本的内容理解,大家在学会了gc算法后,可以就垃圾收集器的使用来进行内存的实际操作了。