当前位置: 首页 > 知识库问答 >
问题:

哪个是JVM的正确实现?[关闭]

汪晟睿
2023-03-14

想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

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

是否正确?

共有2个答案

狄冠宇
2023-03-14

两者都有

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

徐晔
2023-03-14

Java虚拟机是允许供应商实现不同版本的规范。

Wikipedia有一个不同JVM的列表。

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

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

 类似资料:
  • 我已经实现了 Javax WS RS ,用于网站 和,用于以便我可以通过 HTTP REST API 轻松使用 CMP 中的类型。现在,为了注册这些类型,我创建了文件,并将类名放在那里。一切正常,我可以使用API进行REST调用,除了: > IntelliJ IDEA(或我安装到其中的一个插件)抱怨说 注册扩展应实现 javax.ws.rs.ext.提供程序 在文件的两行上。根据我在互联网上找到的

  • 在 Java中,main() 方法是 Java 应用程序的入口方法,程序在运行的时候,第一个执行的方法就是 main() 方法。main() 方法和其他的方法有很大的不同。   每个类可以有也可以没有main方法。

  • 使用Fork-Join框架的资源,创建一个同步多线程系统,从三个文本文件中形成一个最大长度的单词集合。不要使用中间集合来读取文本。在本例中,工作由存储在MaxLengthWord类的arr字段中的数组表示。createSubtasks()方法递归地将任务分成更小的工作部分,直到每个工作部分都小于阈值。

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我利用了以下JPA实现: hibernate 顶联 OpenJPA 他们每个人都有自己的优点和缺点。我发现Hibernate是这三个中最先进的,除了它将自己的某

  • 本文向大家介绍jvm是如何实现线程的?相关面试题,主要包含被问及jvm是如何实现线程的?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JVM 线程是比进程更轻量级的调度执行单位。线程可以把一个进程的资源分配和执行调度分开。一个进程里可以启动多条线程,各个线程可共享该进程的资源(内存地址,文件IO等),又可以独立调度。线程是CPU调度的基本单位。 主流OS都提供线程实现。Java语言提供对线程

  • 问题内容: 我正在编译一个自定义内核,并且我想测试图像文件的大小。结果如下: 由于它们均显示不同的尺寸,因此哪一个最接近实际图像尺寸?他们为什么不同? 问题答案: 它们都是正确的,只是显示不同的大小。 显示文件的大小(打开并阅读文件时,这就是您将获得的字节数) 显示实际的磁盘使用情况,由于出现孔洞,该磁盘使用情况可能小于文件大小 显示对象/可执行文件的运行时映像的大小,该大小与文件的大小没有直接关