为什么 Java 虚拟机设计成没有寄存器来保存中间数据值?相反,每件事都在堆栈上工作。使用基于堆栈的架构而不是寄存器有什么特别的优势吗?
最佳答案
Java 从一开始就被设计为可移植的。但是,如果字节码依赖于运行它的平台上存在的某些寄存器,那么如何保持字节码的可移植性呢?特别是考虑到它最初打算(也)在机顶盒上运行,机顶盒的处理器架构与主流 PC 截然不同。
只有运行时 JVM 才真正知道可用的寄存器和其他硬件特定的东西。然后 JIT 编译器可以(并且将)在适用的情况下针对这些进行优化。
关于java - JVM指令栈式架构的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515154/