Is Java Interpreted or Compiled?

2025年5月2日 | 阅读3分钟

Java 编程语言由 Sun Microsystems 公司于 20 世纪 90 年代初开发。Java 是一种面向对象、简单、高效、健壮且通用的编程语言。它主要用于基于 Web 的企业级应用程序。最初是为运行在不同平台上的嵌入式网络应用程序设计的。

当我们开始学习 Java 编程时,一个问题就会出现:Java 是解释型还是编译型,或者两者兼而有之。此外,在与 Java 相关的面试中,面试官也可能提出这个问题。因此,这个问题的答案是:Java 既是解释型也是编译型。然而,Java 是编译型还是解释型并不完全清楚。它既不像编译源代码文件后生成机器代码,也不像逐行解释源代码文件来执行代码指令。要回答这个问题,我们需要了解 Java 如何实现平台无关性?这意味着我们可以在一个平台上编写 Java 代码,然后在其他平台上运行,而无需进行任何更改,无论是硬件机器还是操作系统。因此,了解 Java 如何实现平台无关性将为这个问题提供一个完整的答案。

Java 完全可移植;相同的 Java 代码将在不同平台上以完全相同的方式运行,而不会受到硬件兼容性或操作系统的影响。

Java 源代码首先使用 Java 编译器编译成二进制字节码,然后该字节码在 JVM(Java 虚拟机)上运行,JVM 是一个基于软件的解释器。所以 Java 被认为既是解释型也是编译型。

编译后的字节码使 JVM 能够小型、高效且快速地运行。此外,该字节码为 Java 编程语言提供了可移植性。它允许在任何正确实现的 JVM 上执行此代码,而不管机器的硬件和软件组件和配置如何。几乎所有的 Web 浏览器都包含 JVM 来执行 Java 小程序代码。

让我们通过一个简单的 Java 程序来理解它

简单的 Java 程序及其工作原理

使用您喜欢的文本编辑器创建一个简单的 .java 文件

Is Java Interpreted or Compiled

将以下代码放入其中

然后保存文件。

现在,检查我们保存 .java 文件的目录。

Is Java Interpreted or Compiled

我们可以通过以下两个步骤执行 Java 应用程序。

  1. 编译 Java 程序
  2. 执行应用程序

编译 Java 应用程序

要编译 Java 程序,请执行以下命令

上面的命令将编译 Java 程序并创建一个 .class 文件,其中包含 Java 应用程序的字节码。

Is Java Interpreted or Compiled

从上面的输出我们可以看到,编译 Java 程序后,会创建一个 .class 文件。该文件包含 Java 程序的字节码。我们可以在任何实现 JVM 的机器上执行此字节码。

执行应用程序

要执行此应用程序,请执行以下命令

上面的命令将执行字节码并执行程序的功能

Is Java Interpreted or Compiled

从上面的输出中,我们打印了一个简单的语句。

Java 程序分步执行

Is Java Interpreted or Compiled
  1. 编写 Java 代码并将文件保存为 **.java**
  2. 现在,该文件将使用 Java 编译器 javac 进行编译。
  3. Java 编译器将编译 Java 文件并创建一个包含字节码的 .class 文件(这不像 C 编译器那样是机器码)。
  4. 生成的字节码是不可执行的代码,现在需要一个解释器将其转换为机器代码。这里 JVM 会处理它。
  5. 现在,JVM 将执行此字节码以在机器上执行 Java 字节码。
  6. 现在,我们的程序将执行功能并给出所需的输出。

结论

Java 被认为既是解释型也是编译型。它使用 Java 编译器 (javac) 和 JVM(实际上是一个基于软件的解释器)在机器上完全执行 Java 应用程序。