JVM01-JVM架构分析
JVM架构图:
注:灰色为线程私有,独占的,亮色是线程共享的,存在垃圾回收处理。
- 首先Class files是我们编写的.java文件会被编译器编译成.class的字节码文件
- 类加载器子系统负责读取这个字节码文件,并转换成Java.lang.Class类中的一个实例,加载到内存中。
- 方法区存放这实例的主要信息,类似于类的模板,如静态变量,常量,类信息以及运行时常量池。
- 本地方法接口是一个Java调用非Java代码的接口,Java中不提供实现类,具体实现是Java之外实现的,用以融合其他编程语言。
- 本地方法栈就是用以本地方法(Native Method)的登记,在执行时加载本地方法库。
- 程序计数器就是记录方法之间的调用和执行情况,存放着下一个要运行的方法的地址,保证程序能够正常运行。
- Java栈也叫Java栈内存,主管Java程序的运行,随线程创建而创建,结束而释放。
- 堆也叫堆内存,分为三个部分:新生区(Young),老年区(Old)和永久区(Perm);用以存放类,方法,常量,变量,保存所有引用类型的真实信息,以便执行器执行。
- 执行引擎就是负责解释命令,提交操作系统执行,是jvm中的执行者。