Java程序运行机制
在了解Java程序运行机制之前,我们先了解一下计算机高级语言的类型
1.编译型
编译型语言所开发的程序,需要通过编译器(compiler)将源代码转换为机器码后才能运行。
- 编译型语言所开发程序,一旦发生更改,整个模块甚至整个项目就需要重新编译,并根据不同的环境和平台编译出不同平台的执行文件,这给开发人员调试、发布都会带来一些麻烦。
- 常见的编译型语言:C、C++等。
2.解释型
解释型语言所开发的程序,会在运行过程中(runtime)通过解释器一边将源文件转换为执行码,一边执行,也就是逐行翻译。解释器可以称之为虚拟机,比如java的虚拟机jvm。
- 常见的解释型语言:Python、JavaScript、shell等。
Java程序运行机制
我们的java是半编译半解释型的语言(是编译与解释的结合),java首先利用文本编辑器编写java源程序, 源文件的后缀名为.java; 在利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为.class 最后利用虚拟机(解释器,java) 解释运行。如图所示
- 所谓一次编译,到处运行,是指在编译和运行中间,多了一个jvm这个抽象层。中间码依赖jvm,而不依赖于平台(操作系统),只要jvm支持中间码,中间就能运行,不同平台的兼容性,就由jvm来解决,开发者可以专注于开发业务逻辑,这解决了编译语言的跨平台问题。