我们编写完成的java程序,即java源代码文件,首先需要经过编译器(compiler)的编译,生成被称为java字节码的中间文件,即class文件,其必须在java虚拟机(java virtual machine)上被解释运行,最终被解释器解释成计算机能够识别的机器码。其执行如下图所示:

cea2fe7574d9f2f86aa42627efa98841.png

关于java的一些说法:

1、一次编译,到处运行。

java源程序经过编译器的编译后,会生成字节码文件(这是二进制文件,它可以通过一些反编译软件在变成java文件),字节码文件可以在不同平台的java虚拟机上进行解释运行,所以java语言有"一次编译,到处运行"的说法。

2、跨平台(平台无关性)

因为java源程序编译生成的字节码可以在不同平台的java虚拟机上运行,可以说字节码文件是java语言实现跨平台优势的关键。

编译方式与解释方式:

1、编译方式——当用户将高级语言编写的源程序运行前,编译器便把所有源程序一次性"解释"成与机器语言等价的目标程序,然后计算机执行该目标程序,以实现源程序的运算,处理,并获取结果。这种方式执行速度快,但是不能实现跨平台。

2、解释方式——程序在运行的时候,解释器边扫描边解释,逐句输入,逐句解释,逐句执行,并不产生目标程序。这种方式执行速度相对较慢,但是这种程序执行时往往不依赖于特定的平台,通过在不同平台上提供不同的解释器就可以跨平台执行。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐