📜  Java平台如何独立?

📅  最后修改于: 2022-05-13 01:55:14.968000             🧑  作者: Mango

Java平台如何独立?

平台无关的意思是Java编译后的代码(字节码)可以在所有操作系统上运行。
程序是用人类可读的语言编写的。它可能包含机器无法理解的单词、短语等。对于要被机器理解的源代码,它需要采用机器能够理解的语言,通常是机器级语言。所以,编译器的作用就来了。编译器将高级语言(人类语言)转换为机器可以理解的格式。因此,编译器是将另一个程序的源代码从编程语言翻译成可执行代码的程序。
该可执行代码可以是可以由CPU直接执行的机器指令序列,也可以是由虚拟机解释的中间表示。 Java 中的这种中间表示是JavaJava码。

Java程序的逐步执行:

  • 每当用Java编写程序时,javac 都会对其进行编译。
  • Java编译器的结果是.class 文件或字节码,而不是机器本机代码(与 C 编译器不同)。
  • 生成的字节码是不可执行的代码,需要解释器才能在机器上执行。该解释器是 JVM,因此字节码由 JVM 执行。
  • 最后程序运行以提供所需的输出。

.如果是 C 或 C++(不独立于平台的语言),编译器会生成一个依赖于操作系统的 .exe 文件。当我们尝试在另一个操作系统上运行这个 .exe 文件时,它不会运行,因为它依赖于操作系统,因此与其他操作系统不兼容。

Java是平台无关的,但 JVM 是平台相关的

在Java中,这里的要点是 JVM 取决于操作系统——因此,如果您运行的是 Mac OS X,那么您将拥有与运行 Windows 或其他操作系统不同的 JVM。可以通过尝试为您的特定机器下载 JVM 来验证这一事实——在尝试下载它时,您将获得一个对应于不同操作系统的 JVM 列表,您显然会选择针对该操作系统的任何 JVM你在跑步。因此我们可以得出结论,JVM 是平台相关的,这也是Java能够成为“平台无关”的原因。
要点:

  • 在Java的情况下,字节码的魔力使它独立于平台
  • 这增加了Java语言中称为可移植性的重要特性。每个系统都有自己的 JVM,它会在安装 jdk 软件时自动安装。对于每个操作系统,都有单独的 JVM 可用,它能够读取 .class 文件或字节码。
  • 需要注意的重要一点是,虽然Java是独立于平台的语言,但 JVM 是依赖于平台的。不同的JVM是为不同的操作系统设计的,字节码可以在不同的操作系统上运行。