JVM体系结构
JVM主要由四大部分组成:类加载器(Class Loader),运行时数据区(Runtime Data Area),执行引擎(Execution Engine),本地方法接口(Native Interface)。
**ClassLoader类加载器:**负责加载字节码文件即class文件,并且类加载器只负责加载class文件,不关心class文件是否可以运行,则由执行引擎(Execution Engine)决定。
**Runtime Data Area运行时数据区:**是存放数据的地区,分为五大块,虚拟机栈,本地方法栈,方法区,堆,程序计数器。
**Execution Engine执行引擎:**Class文件被加载后,会把指令和数据放入内存中,Execution Engine则负责把这些命令解释给操作系统,即将JVM指令集翻译成os指令集。
**Native Interface本地库接口:**它的作用是调用不同语言的接口给Java用,他会在本地方法栈中记录对应的本地方法,然后调用该方法时就通过执行引擎加载对应的本地lib。原本多用于一些专业领域如Java驱动,地图制作引擎等,现在这种接口已经被类似于Socket通信,WebService等方式取代。