java运行时环境是否可以自由使用原始数据类型所需的任何大小?

时间:2016-07-13 03:59:47

标签: java

我正在阅读这本书" Java-The Complete Reference"我发现了一句话说

  

"整数类型的宽度不应被视为它所消耗的存储量,而应该被视为它为该类型的变量和表达式定义的行为。 java运行时环境可以随意使用它想要的任何大小,只要这些类型的行为与你声明它们的行为一样"。

这是否意味着java可以自由选择整数数据类型的大小,通常为4个字节?

1 个答案:

答案 0 :(得分:7)

  

"不应将整数类型的宽度视为金额   它消耗的存储空间,

JVM可以在32位实现上以32位存储典型的Java 16位short,以提高性能。

  

而是它为变量和表达式定义的行为   那种类型。 java运行时环境可以随意使用任何大小   它想要,只要类型的行为与你声明的那样"。

..但对于Java开发人员来说,它将表现为,就像16位带符号的二进制补码整数一样,无论它是如何物理存储在计算机中的。< / p>

这很有道理。您希望程序在任何JVM上运行,因此所有JVM都需要以相同的方式处理您的程序及其整数。但是JVM的实现方式对Java开发人员来说并不重要,因此它允许对架构特定的优化。

@BasilBourque在评论中指出:这是Java语言和JVM的所有规范背后的基本思想:定义所需的行为,但将实现细节留给实现者。多年来已经有很多Java实现,所有的行为都相同,但在“幕后”的内容方面却有很大的变化。