1. Java是编译型语言还是解释型语言?

一、理解什么是编译型语言和解释型语言

首先,计算机是不能理解高级语言的、更不能直接执行高级语言,它只能理解和执行机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。转换的方式有两种:编译、解释。

1. 编译型语言

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

特点:

在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后需要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需要编译一次,以后运行时不需要编译,所以编译型语言执行效率高。

总结:
  • 一次性编译成平台相关的机器语言文件,运行时脱离开发环境
  • 与特定平台相关,一般无法移植到其他平台

1. Java是编译型语言还是解释型语言?_第1张图片

2. 解释型语言

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

特点:

解释型语言不需要事先编译,只要某一平台提供了相应的解释器即可执行该程序。

总结:
  • 解释型语言每次运行都需要将源代码解释成机器码再执行,效率较低
  • 只要平台提供相应的解释器,就可以运行源代码,方便源程序移植
3. 二者对比

编译型语言由于执行效率高,同等条件下对系统要求较低。因次像开发操作系统、大型应用程序、数据库系统时采用它,如 C/C++、Pascal/Object Pascal(Delphi)等。
一些网页脚本、服务器脚本及辅助开发接口对速度要求不高、但对不同系统平台间的兼容性有一定要求的程序则通常使用解释型语言,如 Java、JavaScript、VBScript、Python、Ruby、MATLAB 等。

二、Java是编译型语言还是解释型语言?

Java语言比较特殊:

  • 可以说是编译型的,因为所有的Java代码都需要编译,.java 源程序不经过编译就什么用都没有
  • 可以说是解释型的,因为 java代码编译后不能直接运行,它是解释运行在JVM上的
  • 又可以说是编译型的,因为JVM为了提高效率会有一些JIT优化,又会把 .class 的二进制代码编译为本地可执行的代码运行

像 C、C++ 经过一次编译、没有经过第二次处理即可直接执行,固他们是编译型语言。
Java首先由编译器编译成 .class 类型的文件(并不是机器可识别的语言),然后通过虚拟机(JVM) 从 .class 文件中读一行解释执行一行,所有应该算是解释型语言。Java针对不同的平台有不同的 JVM,实现了真正意义上的跨平台。所以Java语言有一次编译到处执行的说法。

Java 的虚拟机机制:
1. Java是编译型语言还是解释型语言?_第2张图片
1. Java是编译型语言还是解释型语言?_第3张图片
参考链接:
什么是编译型语言和解释型语言?
Java到底是编译型语言还是解释型语言?

你可能感兴趣的:(Java,java,开发语言)