【问题标题】:How does JVM ensures fixed size of the data types across different types of platforms?JVM如何确保跨不同类型平台的数据类型固定大小?
【发布时间】:2018-09-17 18:02:30
【问题描述】:

JVM 是如何确保 32 位和 64 位系统之间的数据类型大小相同的。如果有人能详细解释一下会很有帮助。

【问题讨论】:

  • 在 64 位机器上,它尽可能使用 32 位引用,但是,如果必须使用 64 位引用,则数据结构的大小将不同。根据定义,基元的大小相同。
  • 真正的问题是为什么给定的原语在其他语言的平台上的大小不同?语言没有定义大小,由实现者决定。

标签: java jvm


【解决方案1】:

Java 语言规范 (JLS) 指定了每种原始类型的存储要求。

https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html

例如:

整数类型有 byte、short、int 和 long,其值分别为 8 位、16 位、32 位和 64 位有符号二进制补码整数。

因此,所有 JVM 都会将这些大小用于各种原始类型。

32 位与 64 位不会改变原语的数据存储,只是可以寻址多少内存:

https://stackoverflow.com/a/17287289/657224

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2017-11-15
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多