参考答案
老年代的概念及原理:
- 老年代主要存放应用程序中生命周期长的内存对象。
- 老年代的对象比较稳定,所以MajorGC不会频繁执行。
- 在进行 MajorGC 前一般都先进行了一次 MinorGC,使得有新生代的对象晋身入老年代,导致空间不够用时才触发。
- 当无法找到足够大的连续空间分配给新创建的较大对象时,也会提前触发一次 MajorGC进行垃圾回收腾出空间。
MajorGC采用标记清除算法:
- 首先扫描一次所有老年代,标记出存活的对象,然后回收没有标记的对象。
- ajorGC 的耗时比较长,因为要扫描再回收。
- MajorGC 会产生内存碎片,为了减少内存损耗,我们一般需要进行合并或者标记出来方便下次直接分配。
- 当老年代也满了装不下的时候,就会抛出 OOM(Out of Memory)异常。
以上,是JVM面试题【老年代的概念是什么、以及运行原理】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—