java - jvm字长和操作数栈

标签 java jvm

JVM 规范指出 jvm 操作数堆栈以字大小为单位工作,在许多实现中,字大小是 native 指针的大小 - 32 位系统为 4 字节,64 位系统为 8 字节。我的问题是,如果被压入堆栈的操作数是 char(2 字节)并且操作数堆栈以字大小(64 位系统中为 8 字节)为单位压入和弹出操作数,那么这不是浪费吗空间?

最佳答案

是的,这是“浪费的空间”,但它极大地简化了运行时间,而且字的大小与它们所构建的 CPU 相匹配,因此虽然浪费空间,但它们实际上在 CPU 处理方面更有效率。

而且它也只是用于运行时参数,而不是实际存储的数据。

最后,如果您观察大多数 Java 程序,它们传递的大部分内容是指向对象的指针,而不是标量。所以这一切在洗涤过程中几乎都能解决。

关于java - jvm字长和操作数栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31766491/

相关文章:

java - SQL Server 和 Activemq 之间会使用 Apache Camel 吗?

java - Java使用什么堆实现?

if-statement - 是否可以使用 if 和 while 将所有控制流图翻译回来?

java - 我们可以做我们自己的内存管理吗?

java - 如何知道一个类是否已经初始化?

java - 线程池按顺序运行

java - 为什么子类构造函数不重写?

java - 将 double 转换为 32 位表示(和反向过程)

java - Hibernate setParameter 向字符串添加单引号

java - 我需要使用 JDK 13.0.2 编译什么版本的 JRE?