JVM虚拟机架构图
以下是JVM虚拟机的基本架构图:
+------------------------------------+
| Class Loader Subsystem |
+----------------+-------------------+
|
+------------------+-----------------+------------------------+
| | | |
Bootstrap Class Loader Extension Class Loader System Class Loader
| | |
加载JRE库文件 加载扩展库文件 加载应用程序类
| | |
+------------------+---------------------+-----------------------+
| | | |
Java Thread Java Thread Java Thread ...
Java Stack Java Stack Java Stack
Native Stack Native Stack Native Stack
Program Counter Program Counter
Native Method Monitor Locks
Thread Local Storage
| |
+-----------------+-----------------+
| Method Area | Heap Area |
+-----------------+-----------------+
| |
存储类信息和静态变量 存储实例对象
|
该架构图主要由以下组成部分:
Class Loader Subsystem:负责加载Java类文件,将字节码转换为JVM内部表示的结构,并存储在内存中。
Bootstrap Class Loader:加载JRE库文件。
Extension Class Loader:加载扩展库文件。
System Class Loader:加载应用程序类。
Java Thread:JVM线程,用于执行Java代码。
Java Stack:JVM栈,存储方法执行过程中的局部变量、操作数栈、方法出口等信息。
Native Stack:JVM本地栈,存储JNI方法的参数和局部变量。
Program Counter:JVM计数器,记录当前线程正在执行的字节码指令地址。
Native Method:JNI本地方法库,提供Java和本地代码之间的接口。
Monitor Locks:JVM监视器锁,用于线程间同步和互斥。
Thread Local Storage:JVM线程本地存储,用于线程私有数据的存储。
Method Area:存储所有已加载类的结构信息,包括类名、类成员变量和方法信息等。
Heap Area:存储对象实例。
JVM架构图展示了JVM的各个组成部分及其之间的关系,对于理解JVM的工作原理和实现原理非常有帮助。