Java运行机制

高级语言的运行机制

Java做为一种高级语言,首先看看高级语言有些什么机制

计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编写的程序。翻译的方式有两种,即编译和解释,两种方式的主要区别是翻译的时机不同。

编译型语言

如C、C++语言,使用专门的编译器,针对特定平台(操作系统)将源代码翻译成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行性程序的格式

优点,运行效率较高

缺点,编译生成的程序无法移植

解释型语言

如Python、Lisp,使用专门的解释器,将源代码逐行翻译并执行。解释型语言通常不会整体性的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成

优点,跨平台较容易

缺点,效率较低,不能脱离解释器独立运行

Java的运行机制

Java就比较特殊了,Java虽然需要整体编译,但是并不是源代码(.java)直接编译为机器码,而是编译为字节码文件(.class),再由Java虚拟机(jvm)根据不同平台解释执行。因此Java是跨平台的语言,相同的源码只需对应不同平台的jvm就可以执行。

主要流程如下

Java运行机制

参考

https://blog.****.net/u011546655/article/details/52175550

https://www.cnblogs.com/iwinson/p/6074885.html