上图显示了同一个Java程序(也就是Java字节码的集合)通过Java虚拟机运行于各大主流系统平台,该程序以虚拟机为中介,实现了跨平台的特性。
在编译Java程序时,会将写好的源程序通过编译器编译生成.class文件(又称为字节码文件),再通过JVM内部的解释器将字节码文件解释成为具体平台上的机器指令执行,也就实现了Java程序的跨平台特性。对于每一条Java指令,jVM中都有详细定义,比如怎么处理、存放、操作数据等。 3、在JVM中4大组成部分及用途 (1)类加载器 (2)运行时数据区 (3)执行引擎 (4)本地库接口 程序在执行之前先把Java代码转换成字节码(class文件) JVM首先需把字节码通过类加载器,把字节码加载到运行时数据区中 因为字节码是JVM的一套指令集规范,并不能直接由底层操作系统去执行 所以需要特定的执行引擎,将字节码翻译成底层系统指令,再交给CPU去执行 在这个过程中,需要调用其他语言的本地库接口来实现整个程序的功能。



