从原理聊JVM(一):染色标记和垃圾回收算法

💡 原文中文,约5200字,阅读约需13分钟。
📝

内容提要

本文介绍了JVM的内存分配、GC、编译等知识,并详细解释了JVM的运行时内存划分、对象的内存布局、标记的方法和流程、分代模型、垃圾回收算法等内容。

Q&A

JVM的运行时内存划分包括哪些区域?

JVM的运行时内存划分包括方法区、堆、虚拟机栈、本地方法栈和程序计数器。

什么是三色标记法,它的作用是什么?

三色标记法用于可达性分析,通过将对象标记为白色、灰色和黑色来判断对象的存活状态。

JVM中如何判断对象是否需要被回收?

可以通过引用计数法和可达性算法来判断对象是否需要被回收。

什么是分代模型,它的基本假设是什么?

分代模型将对象分为年轻代和年老代,基本假设是大多数对象是短命的,存活时间越长的对象越难以被回收。

标记-清除算法的缺点是什么?

标记-清除算法的缺点是会产生内存碎片,可能导致后续无法找到足够的连续内存。

JVM中OopMap的作用是什么?

OopMap用于快速找到GC Root,帮助垃圾收集器在回收时定位对象引用。

🏷️

标签

➡️

继续阅读