java virtual machine 是一个程序/,它接收java字节码(.class文件)并将字节码(逐行)转换为机器可理解的代码。
jvm 包含一个称为类加载器的模块。jvm 中的类加载器负责加载、链接和初始化程序。它:
-
将类加载到内存中。
-
验证字节码指令。
-
为程序分配内存。
jvm 内存位置
jvm 有五个内存位置,分别是:
-
堆 - 为对象(引用类型)分配运行时存储。
-
栈 - 存储局部变量和部分结果。栈包含帧,并为每个线程分配一个帧。线程完成后,该帧也会被销毁。它还在方法调用和返回中发挥作用。
-
pc 寄存器 - 程序计数器寄存器包含 jvm 当前执行的指令的地址。
-
执行引擎 - 它具有虚拟处理器、解释器逐条解释字节码指令和即时编译器。
-
本地方法栈 - 它包含应用程序使用的所有本地方法。