java程序的运行机制
在计算机高级编程语言类型中可分两种运行机制,一种是编译型,另一种是解释型。而java既有编译型特点,又有解释型特点。
- 编译型: 使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。简单点来说:就是全部翻译,如果后面更新了,重头开始在重复翻译一遍
- 解释型:使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。简单点来说:一行一行翻译,更新什么翻译什么。
关于java
Java和其他的语言不太一样。因为java针对不同的平台有不同的JVM,实现了跨平台。所以Java语言有一次编译到处运行的说法。
- 你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。
- 你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。
- 但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。