Java语言跨平台的特殊性:

      一般高级语言如要在不同的平台上运行,需要编译成不同的目标代码。引入Java虚拟机后,Java语言在不同平台上运行时不需要重新编译。所以Java语言是跨平台的,此特性也是基于Java虚拟机的。

 

Java语言跨平台性的实现原理:

    Java虚拟机(JVM)屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改的运行。

    简单来说就是每个平台都有一个对应的JVM,而Java语言编写的程序所编译成的字节码又是由JVM来执行的,不同平台上的JVM会把字节码解释为对应平台所能执行的机器码然后执行,由此实现了Java语言的跨平台性。

    总结:由于JVM的不跨平台性最终实现了Java语言的跨平台性

 

Java程序的执行流程:

    Java程序的运行分为两大期:

         1) 编译期

             Java编译器将源文件(.java)编译成字节码(.class)文件

         2) 运行期

              Java运行期的操作都是在JVM上的,首先通过类加载器将字节码文件加载到JVM中,然后通过字节码校验器对加载进入的字节码校验,如果字节码文件是合法的、可执行的则通过解释器将字节码解释为当前平台所能最终执行的机器码,也被称为目标代码,最后执行。