【发布时间】:2017-01-06 16:54:50
【问题描述】:
局部变量数组的每个槽是 4 字节。因此,要存储字符、短变量或字节变量,需要使用一个插槽。意味着所有较小的数据类型在内部都被转换为 int 数据类型。
我的疑问是:
1)。如果在内部它们是 4 字节,它是否不会使较小的数据类型变得无用?,如果是,为什么不从语言中删除这些数据类型? 2)。如果每个插槽都是 1 字节,则不会浪费内存。为什么不是每个插槽都是 1 字节的?
【问题讨论】:
-
我不相信有任何说明它是 4 字节的,因为它只是一个虚拟插槽。注意:64 位引用仍然使用一个插槽。
-
artima.com/insidejvm/ed2/jvm8.html,参见“局部变量”部分的第二段。这位先生的时间是16:00到25:00。 youtube.com/…
-
这只是一种实现。
-
JVM字节码和JVM规范使用的抽象虚拟机,就是:abstract。实际实现不必使用其概念的 1:1 映射,只要它们的可观察行为相同即可。这包括堆栈布局。
标签: java jvm local-variables stack-memory