Jus*_*tin 133 java jvm-hotspot
究竟什么是HotSpot以及它与JVM和OpenJDK有什么关系?它是图书馆吗?它到底是做什么用的?
另外,OpenJDK和HotSpot有什么区别?
Edw*_*rzo 140
Java虚拟机规范中说明了Java虚拟机究竟是什么的定义
根据定义,JVM是一个虚拟机,即模拟真机操作的软件机器.像真机一样,它有一个指令集,一个虚拟计算机架构和一个执行模型.它能够运行用这个虚拟指令集编写的代码,就像真机可以运行机器代码一样.
HotSpot是JVM概念的一种实现.它最初由Sun开发,现在由Oracle拥有.还有JVM规范的其他实现,如JRockit,IBM J9等等.
请参阅Java虚拟机实现列表
在OpenJDK的是其下热点(和其他许多件JDK如编译器,应用程序接口,工具等)的开源实现开发的一个项目.
Bas*_*que 35
注意:在2020-06年末转移到 Eclipse 基金会后,AdoptOpenJDK已更名为Adoptium。
JVM 和 HotSpot 的区别?
一个Java虚拟机(JVM)是从未被物理建成硬件假想计算机。JVM 运行编译成其虚构指令集的程序,该指令集作为称为字节码的中间表示写入存储。
在运行时,字节码必须从虚构的指令集转换为主机 CPU 的实际指令集。这可以由口译员即时完成。或者字节码可以被完全编译和缓存,以比通过解释器运行得更快,在一个称为即时 (JIT) 编译的过程中。
几十年来,有许多JVM 的实现。大多数都已经消失了。
HotSpot是 JIT 技术的一种实现,它从运行解释开始,并观察应用程序的实际性能。然后选择应用程序的某些部分作为本机代码完全编译并缓存,以便更快地执行。HotSpot 是在Sun作为商业产品开发的。收购 Sun 后, Oracle通过结合其竞争产品JRockit 的重要部分进一步发展 HotSpot。HotSpot 现在通过OpenJDK项目开源,免费提供。
OpenJ9 中的另一个这样的实现,由 IBM 开发,现在通过Eclipse Foundation开源并免费提供。一些基于 OpenJDK 的 JVM 发行版将 HotSpot 替换为 OpenJ9,同时仍然使用 OpenJDK 的其余部分,例如Java SE类库。例如,AdoptOpenJDK提供的预构建发行版在某些硬件上为您提供了HotSpot或OpenJ9 的选择。
图表显示了 HotSpot 和 JRockit 合并的历史,以及在 AdoptOpenJDK 中可用的 OpenJ9。
HotSpot 究竟是什么,它与 JVM 和 OpenJDK 有什么关系?是图书馆吗?它究竟有什么作用?
OpenJ9通常以更快的启动速度和更低的内存使用率而闻名,而HotSpot可能会更有效地运行长时间运行的应用程序。两者都广受好评,久经考验,并且可用于 OpenJDK 的发行版。
OpenJDK是一个开源项目,它完全实现了定义Java 平台的Java 规范、 JSR和JEP。我今天所知道的每个 JVM 实现都完全或大部分基于 OpenJDK代码库,并使用 HotSpot 或 OpenJ9 技术。
除了 JVM,OpenJDK 还为 Java SE 规范所需的所有类(例如java.lang、java.util、java.time和其他包)提供了源代码中的实现。
另外,OpenJDK 和 HotSpot 有什么区别?
HotSpot的源代码作为OpenJDK项目的一部分进行保存、维护和进一步开发。替代方案OpenJ9由Eclipse Foundation容纳、维护和进一步开发,同时取代了 OpenJDK 的某些发行版中的 HotSpot。
Java 技术的一些发行版选择随 HotSpot 一起提供。一些发行版选择将OpenJDK代码库中的HotSpot部分替换为OpenJ9替代品。
这是一个流程图图形,可帮助您为 Java 平台的分发选择供应商。
NIN*_*OOP 22
OpenJDK(Open Java Development Kit)是Java平台标准版(Java SE)的免费开源实现.openjdk是由Sun Microsystems开发的项目,现在由许多公司和社区关注构建Java开发工具包绝对是开源的.根据官方文档.
OpenJDK是Java平台标准版(Java SE)规范的开源实现.2007年5月,Sun在GNU通用公共许可证第2版(GPLv2)下向OpenJDK社区发布了一个完全可构建的Java SE开发工具包(JDK)版本作为免费软件.Sun宣布OpenJDK社区的临时管理委员会.Sun还宣布,基于OpenJDK的实现可以使用Java SE 6技术兼容性工具包(JCK)来建立与Java SE 6规范的兼容性.
在OpenJDK项目包括多个组件的- 热点(虚拟机)中,Java类库和javac的Java的compiler.For更多关于它,请访问其网站.
Sun/Oracle提供的当前JVM称为HotSpot,因为它在代码中使用热点(代码更加集中使用的地方)用于"即时"优化.从维基百科中,作为"Java HotSpot性能引擎"发布的HotSpot是由Oracle Corporation维护和分发的桌面和服务器的Java虚拟机.
小智 8
如上所述,HotSpot是Java虚拟机(JVM)概念的跨平台实现,并在GNU通用公共许可证下与OpenJDK(Java Developer Kit)一起分发.HotSpot主要用C++编写,最初是在Sun Microsystems下开发的.它目前是在OpenJDK项目下开发的,网址是www.java.net.HotSpot JVM作为Java 1.2的附加组件提供,后来被用作Java 1.3中的默认Sun JVM.JVM目前处于版本7,Build b147,并且背后有一个活跃的开发社区.
有关更多信息,请转到:https: //www.java.net/
快乐的编码!