
上QQ阅读APP看书,第一时间看更新
1-7 Java跨平台原理
在讲解Java的跨平台之前,首先介绍一般程序语言的编译与执行方式。
1-7-1 一般程序的编译与执行
一般程序语言在不同的操作系统会有不同的编译程序,程序在撰写完成后,使用编译程序编译程序时会依据不同的操作系统产生不同的机器码,所产生的机器码只能在所属的操作系统下执行,无法在不同的操作系统环境中执行。

1-7-2 Java程序的编译与执行
Java的跨平台特性,是指使用Java语言所编写的程序在编译后不用经过任何修改,就可以在任何硬件的操作系统下执行,也可以称其为一次编写(write once),到处执行(run anywhere)。为了完成跨平台所需借助的就是JVM。

Java程序的扩展名是java,如果程序是ch1_1,则此Java程序的全名是ch1_1.java。Java编译程序会将Java程序编译为半成品的字节码(Bytecode),此字节码的扩展名是class,如果程序是ch1_1.java,经编译后则此字节码的名称是ch1_1.class。不同的操作系统平台有不同的JVM,如果想要执行字节码,目标平台需要有属于此平台的JVM,然后这个JVM会将字节码翻译为属于此平台的机器码,再予以执行。
所以也可以说JVM就是字节码(*.class)与操作系统平台的翻译员,有的Java程序设计师甚至说,Java程序的操作系统是JVM,字节码(*.class)其实就是JVM的可执行文件。