Java程序运行机制

编译型

使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。

特点

在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码译成机器语言的文件,例如exe文件。因为只需要编译一次,以后运行时不需要编译,所以编译型语言执行效率高。

总结

  • 一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高
  • 与特定平台相关一般无法移植到其他平台
  • 现有的C、C++、Objective等属于编译型语言。

解释型

使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态翻译和执行,而不是执行之前就完成翻译。

特点

解释型语言不需要事先编译,其直接将源代码解释成机器并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。

总结

  • 解释型语言每次运行都需要将源代码解释到机器码并执行,效率较低
  • 只要平台提供相应的解释器,就可以运行源代码,所有方便源程序移植
  • Python等属于解释型语言。

Java程序运行机制

1.你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 
2.你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。
3.但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。

作者:KID不务正业的程序员
链接:https://www.jianshu.com/p/54e2aeca013b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

posted @ 2020-12-17 09:24  xiong_xzc  阅读(70)  评论(0)    收藏  举报