Young gen 的默认收集器。的 Java 1.5、1.6、1.7 和 1.8?

the default collector for Young gen. of Java 1.5, 1.6, 1.7 and 1.8?

正在学习java的gc技术,看我标注的内容参考了https://c-guntur.github.io/java-gc的文章,图片 GENERATIONAL GC - TYPES - HISTORY

Parallel Collector a.k.a Throughput collector - Java 1.5 onwards, default collector Java 1.5, 1.6, 1.7 and 1.8 (* ↓) Young gen., only has the parallel (scavenge) collection.

Concurrent Mark-Sweep (CMS) Collector (mostly*) - available Java 1.5 onwards until Java 1.8 By default, Young gen. uses a serial collection and Tenured gen. use a CMS collector.

我有点搞不懂年轻一代的默认收集器是什么。 Java 1.5、1.6、1.7 和 1.8? 非常感谢

年轻代收集器算法与早期相比并没有太大变化。

年轻代分为三个区域:伊甸园和两个幸存者space。 Eden space 实际上是作为一个带有指针的堆栈来维护的。当对象在实例化期间需要分配 space 时,将使用当前指针引用并将指针递增对象的大小。这是指针碰撞,速度非常快(实际上大约 6 条指令,比调用 malloc 更快)。对此唯一真正的改变是引入了线程本地分配缓冲区 (TLAB)。我不确定这些是什么时候引入的,但它们在 JDK 5. 这些在 Eden 中为每个线程分配一个区域以避免在分配期间需要锁和可能的争用。

当年轻一代需要收集时,所有活动对象都被复制到 to survivor space,以及 from 中的任何活动对象 幸存者 space 未达到任期阈值(此时他们被授予老一代。)

感谢大家的帮助,正如 Alexey Ragozin 所说的“默认”似乎并不准确,我发现来自 Oracle 的更好的文章涵盖了细节 1.Java 垃圾收集基础知识 https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html#RequiredSoftware 2.Tuning Garbage Collection with the 5.0 Java Virtual Machine https://www.oracle.com/java/technologies/tuning-garbage-collection-v50-java-virtual-machine.html#1.1.Introduction-Coutline