java的平台无关性真的是因为解释和编译的结合吗?

问题描述 投票:0回答:1

我看到很多网上资源都说,Java 是平台无关的,因为它结合了解释和编译。 第一阶段:Java将源代码编译为字节码 第 2 阶段:该字节码在运行时被解释。

但是,Java 不是平台无关的吗?因为字节码是平台无关的并且它可以在任何具有兼容 JVM 的机器上运行吗?即使Java在两个阶段都解释或在两个阶段编译,它不是仍然是平台无关的吗?

java compilation bytecode interpretation platform-independent
1个回答
0
投票

你是对的,java平台独立性的关键是字节码,JVM是。当您编译 Java 程序时,它会被编译为字节码,字节码是 Java 代码的平台无关的中间表示形式。

JVM负责执行字节码。每个操作系统都有自己的 JVM 实现,它将字节码解释为机器代码。

因此,语言在任何阶段是否使用解释型或编译型并不是其平台独立性的主要因素。正是使用了中间的、平台无关的字节码和系统特定的 JVM,使得 Java 平台变得独立。

© www.soinside.com 2019 - 2024. All rights reserved.