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

标签 jvm jvm-languages

为什么 JVM 是基于堆栈的虚拟机?这到底意味着什么?与基于寄存器的虚拟机相比有哪些优势?虚拟机构建者还有其他主要的设计/实现选择吗?

最佳答案

基于堆栈的虚拟机无论是概念还是实现起来都非常简单。几乎任何具有计算机科学背景的人都可以用几百行代码实现一个简单的功能齐全的虚拟机。

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

一个简单的概念可以让在模型之上实现像 Hotspot 这样真正的魔法变得更加简单。这并不简单,但您可以根据自己的能力选择复杂程度,从直接解释器到简单的 JIT 到 Hotspot。

关于jvm - 为什么 JVM 是基于堆栈的虚拟机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7154476/

相关文章:

java - JVM 垃圾回收问题

java - 如何搭建Java HotSpot VM的开发环境?

java - Java 中的对象创建语法

java - 为什么调用 System.gc() 会导致内存使用量显着减少?

java - 无法处理大于 65535 个字符的字符串文字。编译器抛出 IllegalArgumentException

python - 什么时候在 .py 文件上运行 Jython 会生成 .class 文件?

java - Jython 能取代 Java 吗?

Scala 和 Clojure 都在一个项目中

java - 运行时高效的公式绑定(bind)

java - 如何从原始类文件中找出依赖的类?