JAVA-JRE/JDK/JVM(平台独立性)

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

Java 是一种独立于平台的语言。但是,JVM 是依赖于机器的。所以,我的问题是:java的哪些部分是平台无关的? JRE、JDK 还是 JVM?请解释一下。

java
3个回答
6
投票

JVM
JRE
JDK
这些都是java语言的支柱。每个组件单独工作。 JDK和JRE物理上存在,但JVM是一个抽象机器,这意味着它物理上不存在。

enter image description here

JVM

JVM(Java虚拟机)是一种软件。它是一个提供 java

bytecode
可以执行的运行时环境的规范。它实际上并不存在。

所有硬件和软件的 JVM 都不相同,例如,

windows
操作系统 JVM 不同,
Linux
JVM 不同。 JVM、JRE 和 JDK 依赖于平台,因为每个操作系统的配置不同。但是,Java 是独立于平台的。

JRE

Java 运行时环境 (JRE) 是 Java 开发工具包 (JDK) 的一部分。它包含一组用于开发 java 应用程序的库和工具。 Java 运行时环境提供了执行 Java 应用程序的最低要求。它是物理存在的。它包含 JVM 在运行时使用的一组库和其他文件。

enter image description here

JDK

Java 开发工具包 (JDK) 是主要组件。它是物理存在的。它是编程工具和JRE、JVM的集合。

enter image description here


2
投票

所有 3 个都依赖于平台。

  1. JVM -> 平台相关。
  2. JRE -> 由 JVM 和其他一些东西组成。由于它包含 JVM,因此它是平台相关的。
  3. JDK -> 由 JRE、编译器和其他一些东西组成。由于它包括 JRE,而 JRE 又包括 JVM,因此它是平台相关的。

编译前后的java代码是平台无关的。你可以在windows上编译并使用Unix的jvm在unix上运行字节码。


0
投票

JDK 和 JRE ---> 平台相关,这些特定于不同的系统。 JVM ---> 平台无关,因为JVM是JRE的规范。这意味着 JVM 有一些规则,而 JRE 正在为其提供实现。所以,JRE 是 JVM 的物理实现。

Ex- 银行有一些具体规则,SBI、BOI 和 UCO 是银行的实施。在本例中,BANK 是 JVM,SBI、BOI 和 UCO 是 JRE。

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