2. JVM整体结构

  • 简图

image.png
这个架构可以分为三层:

  • 最上层: javac 编译器将想编译好的字节码class文件,通过java的类加载执行机制,把对象或者class文件存放在JVM的规划区域中.
  • 中间层: 称为Runtime Data Area ,主要是在Java代码运行时用于存放数据的地方,从左到右为方法区(永久代, 元数据区) 堆(共享,GC回收对象区域) 栈 程序计数器 寄存器 本地方法栈
  • 最下层: 解释器 , JIT(just in time) 编译器 和 GC(Garbage Collection , 垃圾回收器)
    • 详细图
      image.png