【问题标题】:Which is the correct implementation of JVM? [closed]哪个是JVM的正确实现? [关闭]
【发布时间】:2014-09-08 12:43:37
【问题描述】:

我刚刚读到 JRE 是 JVM 的实现,HotSpot VM 也是 JVM 的实现。哪个

对吗?

【问题讨论】:

  • this questionthis one 的重复?
  • @Cyaegha 但它没有说明 JRE
  • 先生,但他们没有将两者联系起来,这就是我要问的。
  • 简短回答:JRE 包括一个 JVM 以及其他东西(标准库、各种工具和实用程序)。对于 Oracle 的 JRE(或 OpenJDK 的 JRE),包含的 JVM 是 Hotspot。
  • 非常感谢您的简短回答消除了我所有的疑虑

标签: java jvm-hotspot


【解决方案1】:

Java 虚拟机是一个specification,它允许供应商实现不同的版本。

维基百科有一个 list 的不同 JVM。

Oracle Java SE HotSpot 是众多能够“即时”将 java 代码编译为本机代码的 JVM 实现之一。

JRE 只是一个 JVM 实现加上标准 Java API 和库以及其他一些东西的实现。

【讨论】:

  • 先生,但列表中没有提到 JRE 作为 JVM 实现。为什么?
  • @user3519914 JRE = 热点 + Java 标准库 + 其他一些东西
  • @user3519914 JRE 不是 JVM,它包含 JVM(例如 HotSpot)和其他东西。这就像一辆汽车,其中 JVM 是引擎。
【解决方案2】:

两者

JLS,“Java 语言规范”,定义了 Java 语言的语法和特性 (http://docs.oracle.com/javase/specs/)。当您创建一段 Java 代码时,它必须在运行之前编译,这意味着变成了您的机器可以理解的低级指令集。

假设编译器可以将其转换为任何架构上的机器指令。 Java 被设计为“可移植的”,即可以跨多个系统运行。 JVM,Java 虚拟机,本身编译到许多架构上,就是对此的回答。您无需为 macos、linux 和 windows 编译,而是编译成 Java 字节码,然后 JVM(同样,它本身编译到这些操作系统上)解释您的代码。

你可以在这里阅读更多关于热点的信息http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136373.html

【讨论】:

  • 先生,我想您对 JRE 只字未提
猜你喜欢
  • 2011-05-02
  • 2011-02-05
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 2021-01-08
  • 2012-06-14
  • 2012-07-14
  • 1970-01-01
相关资源
最近更新 更多