JVM 规范指出 jvm 操作数堆栈以字大小为单位工作,在许多实现中,字大小是 native 指针的大小 - 32 位系统为 4 字节,64 位系统为 8 字节。我的问题是,如果被压入堆栈的操作数是 char(2 字节)并且操作数堆栈以字大小(64 位系统中为 8 字节)为单位压入和弹出操作数,那么这不是浪费吗空间?
最佳答案
是的,这是“浪费的空间”,但它极大地简化了运行时间,而且字的大小与它们所构建的 CPU 相匹配,因此虽然浪费空间,但它们实际上在 CPU 处理方面更有效率。
而且它也只是用于运行时参数,而不是实际存储的数据。
最后,如果您观察大多数 Java 程序,它们传递的大部分内容是指向对象的指针,而不是标量。所以这一切在洗涤过程中几乎都能解决。
关于java - jvm字长和操作数栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31766491/