JVM和HotSpot的区别?

HotSpot到底是什么,它与JVM和OpenJDK有什么关系? 这是一个图书馆吗? 它究竟做了什么?

另外,OpenJDK和HotSpot有什么区别?

Java虚拟机的定义就是所谓的Java虚拟机规范

JVM是虚拟机 ,它是一个模拟真实机器的软件机器。 像真机一样,它有一个指令集 ,一个虚拟的计算机体系结构和一个执行模型。 它能够运行用这个虚拟指令集编写的代码,就像真正的机器可以运行机器代码一样。

HotSpot是JVM概念的一个实现,最初由Sun开发,现在由Oracle拥有。 还有其他JVM规范的实现,如JRockit , IBM J9等等。

请参阅Java虚拟机实现列表

OpenJDK是一个项目,在这个项目中开发了HotSpot的开源实现(以及许多其他的东西,比如编译器,JDK API等等)。

OpenJDK (开放Java开发工具包)是Java平台标准版(Java SE)的免费开源实现。openjdk是由Sun Microsystems公司开发的一个项目,现在许多公司和社区都在关心构buildJava开发工具包绝对在开源。 根据官方文件 。

OpenJDK是Java平台标准版(Java SE)规范的开源实现。 2007年5月,Sun根据GNU通用公共许可证第二版(GPLv2)向OpenJDK社区发布了可完全构build的用于Java SE的Java开发工具包(JDK)版本,作为免费软件。 Sun宣布了OpenJDK社区临时pipe理委员会。 Sun还宣布基于OpenJDK的实现可以使用Java SE 6技术兼容工具包(JCK)来build立与Java SE 6规范的兼容性。

OpenJDK项目由许多组件组成 – HotSpot(虚拟机) ,Java类库和javac Java编译器。欲了解更多信息,请访问它的网站 。

由Sun / Oracle提供的当前JVM被称为HotSpot,因为它寻求在代码中使用的热点(在代码被更密集地使用的地方)用于“即时”优化。 从“ 维基百科 ”发布的HotSpot作为“Java HotSpot性能引擎”是针对桌面和服务器的Java虚拟机,由Oracle公司维护和分发。

如上所述,HotSpot是Java虚拟机(JVM)概念的跨平台实现,并且在GNU通用公共许可证下与OpenJDK(Java开发人员工具包)一起分发。 HotSpot主要以C ++编写,最初是在Sun Microsystems下开发的。 它目前是在www.java.net的OpenJDK项目下开发的。 HotSpot JVM作为Java 1.2的附件提供,后来被用作Java 1.3中的默认Sun JVM。 JVM目前在版本7 Build b147中,并且有一个活跃的开发社区。

有关更多信息,转到: https : //www.java.net/

快乐编码!

JVM是一个抽象的机器(规格)。 HotSpot,OpenJDK和JRockit等都是JVM的实现。

免费和开源的实现

  • HotSpot ,主要参考Java VM实现

  • OpenJDK – 开放Java开发工具包是GNU通用公共许可证(GNU GPL)授权的免费开源实现,具有链接exception。

专有的实现

  • JRockit (最初来自Appeal Virtual Machines)由Oracle收购,用于Linux,Windows和Solaris

为更多的实现
链接解释了HotSpot和JRocket之间的区别

HotSpot是C ++黑客的高级forms,为了使用它,您必须构build它才能编译最简单的东西。 除非你调整编译器,或者从头编写它们。 HotSpot基本上是将源代码转换为C ++代码,然后将其编译为本地代码的方式,因此术语jit编译。