> For the complete documentation index, see [llms.txt](https://jon-xia.gitbook.io/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jon-xia.gitbook.io/workspace/gong-cheng-9/yu-yan-xiang-guan/java/jvm/jvm-ti-xi-jie-gou.md).

# JVM体系结构

JVM结构基本上由4部分组成。

* ClassLoader
* 执行引擎
* 内存区

  &#x20;一个JVM实例拥有，堆，栈，方法区，寄存器和本地方法区。

  * 其中方法区和Java堆是所有线程共享的，也就是可以被所有的执行引擎实例访问。

    每个执行引擎都有自己的栈和寄存器

    * Java栈：如果当前正在执行着一个Java方法，那么在其中保存的是该线程中方法调用的状态，包括方法的参数、方法的局部变量、方法的返回值以及运算的中间结果等。
    * 寄存器会指向即将执行的下一条指令。
* 本地方法调用：如果是本地方法调用，则存储在本地方法调用栈中或者特定实现中的某个内存区域中。

TODO：细节之后再整理
