Java 是一种独立于平台的语言。但是,JVM 是依赖于机器的。所以,我的问题是:java的哪些部分是平台无关的? JRE、JDK 还是 JVM?请解释一下。
JVM
、JRE
、JDK
这些都是java语言的支柱。每个组件单独工作。 JDK和JRE物理上存在,但JVM是一个抽象机器,这意味着它物理上不存在。
JVM
JVM(Java虚拟机)是一种软件。它是一个提供 java
bytecode
可以执行的运行时环境的规范。它实际上并不存在。
所有硬件和软件的 JVM 都不相同,例如,
windows
操作系统 JVM 不同,Linux
JVM 不同。 JVM、JRE 和 JDK 依赖于平台,因为每个操作系统的配置不同。但是,Java 是独立于平台的。
JRE
Java 运行时环境 (JRE) 是 Java 开发工具包 (JDK) 的一部分。它包含一组用于开发 java 应用程序的库和工具。 Java 运行时环境提供了执行 Java 应用程序的最低要求。它是物理存在的。它包含 JVM 在运行时使用的一组库和其他文件。
JDK
Java 开发工具包 (JDK) 是主要组件。它是物理存在的。它是编程工具和JRE、JVM的集合。
所有 3 个都依赖于平台。
编译前后的java代码是平台无关的。你可以在windows上编译并使用Unix的jvm在unix上运行字节码。
JDK 和 JRE ---> 平台相关,这些特定于不同的系统。 JVM ---> 平台无关,因为JVM是JRE的规范。这意味着 JVM 有一些规则,而 JRE 正在为其提供实现。所以,JRE 是 JVM 的物理实现。
Ex- 银行有一些具体规则,SBI、BOI 和 UCO 是银行的实施。在本例中,BANK 是 JVM,SBI、BOI 和 UCO 是 JRE。