为什么JVM是基于堆栈的虚拟机?

问题描述:

为什么JVM是基于堆栈的虚拟机?究竟是什么意思,以及基于寄存器的虚拟机有什么优势?虚拟机制造商是否还有其他主要的设计/实施选择?为什么JVM是基于堆栈的虚拟机?

基于堆栈的虚拟机非常简单,既是一个概念,也是一个实现。几乎任何具有CS背景的人都可以在几百行代码中实现一个简单的全功能虚拟机。

如果需要,您可以将堆栈视为任意大量的寄存器。从一开始就添加寄存器将是过早的优化。

一个简单的概念,然后可以更容易做真正的魔力就像热点的模型之上。这并不简单,但您可以根据自己从直译员到简单JIT到Hotspot的能力来选择复杂程度。