JVM全称是Java Virtual Machine (Java 虚拟机),它是通过模拟一个计算机来达到一个计算机所具有的计算功能。
JVM和实体机一样,必须有有一套合适的指令集,这个指令集能够被JVM解析执行。这个指令集我们称为JVM字节码指令集,符合class文件规范的字节码都可以被JVM执行。
JVM体系结构详解
JVM结构基本上由4部分组成。
1.类加载器:
在JVM启动时或者在类运行时,需要将class文件加载到JVM中。
每个被JVM装在的类型都有一个对应的java.lang.Class类的实例来表示该类型。该实例也可以唯一表示被JVM装在的class类,要求这个实例和其他类的实例一样都放在Java的堆中。
2.执行引擎
执行引擎的任务时负责执行class文件中包含的字节码指令,相当于实际机器上的CPU。
执行引擎是JVM的核心部分,执行引擎的作用就是解析JVM字节码指令,得到执行结果。
3. java内存管理:
将内存划分成若干个区以模拟实际机器上的存储,记录和调度功能模块,如实际机器上的各种功能的寄存器或者PC指针的寄存器等。
其中方法区和java堆是所有线程共享的,也就是可以被所有执行引擎的实例访问。
4.本地方法调用:
调用C或C++实现的本地方法的代码返回结果。
JVM为何选择基于栈的架构
执行引擎的架构设计