Java程序的运行过程如下:
- Java源文件被编译器编译成字节码文件。
- JVM将字节码文件编译成相应操作系统的机器码。
- 机器码调用相应操作系统的本地方法库执行相应的方法。
Java虚拟机包括一个类加载器子系统、运行时数据区、执行引擎和本地接口库。本地接口库通过调用本地方法库与操作系统交互。
- 类加载器子系统用于将编译好的class文件加载到JVM中
- 运行时数据区用于存储在JVM运行过程中产生的数据,包括程序计数器、方法区。本地方法区、虚拟机栈和虚拟机堆
- 执行引擎包括即时编译器和垃圾回收器。即时编译器用于将Java字节码编译成具体的机器码,垃圾回收器用于回收在运行过程中不再使用的对象
- 本地接口库用于调用操作系统的本地方法库完成具体的指令操作