我刚读过JRE是JVM的一个实现,而HotSpot VM也是JVM的一个实现。哪一个
是对的吗?
答案 0 :(得分:0)
<强>两个强>
JLS,“Java语言规范”,定义了Java语言(http://docs.oracle.com/javase/specs/)的语法和功能。当您创建一段Java代码时,它必须先进行编译才能运行,这意味着您可以将其转换为机器可以理解的低级指令集。
编译器可以假设将其转换为任何架构上的机器指令。 Java被设计为“可移植的”,即在许多系统中运行。 JVM,Java虚拟机本身编译到许多体系结构上,就是对此的回答。你不是编译macos,linux和windows,而是编译成Java Byte Code,而JVM(再次编译到那些操作系统上)会解释你的代码。
您可以在此处详细了解热点http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136373.html
答案 1 :(得分:0)
Java虚拟机是specification,允许供应商实现不同的版本。
维基百科有list个不同的JVM。
Oracle Java SE HotSpot是许多能够将Java代码“及时”编译为本机代码的JVM实现。
JRE只是一个JVM实现,加上标准Java API和库以及其他一些东西的实现。