我正在阅读"Java-The Complete Reference"这本书,我发现了一句话
"整数类型的宽度不应该被认为是它消耗的存储量,而是它为该类型的变量和表达式定义的行为.java运行时环境可以随意使用它想要的任何大小,只要类型的行为与你声明它们一样".
这是否意味着java可以自由选择整数数据类型的大小,通常为4个字节?
"不应将整数类型的宽度视为其消耗的存储量,
JVM可以在32位实现上以32位存储典型的Java 16位short
,以提高性能.
而是它为该类型的变量和表达式定义的行为.java运行时环境可以随意使用它想要的任何大小,只要类型的行为与你声明的那样".
..但对于Java开发人员来说,它的行为就像一个16位带符号的二进制补码整数,无论它是如何物理存储在计算机中的.
这很有道理.您希望程序在任何JVM上运行,因此所有JVM都需要以相同的方式处理您的程序及其整数.但是如何实现JVM对Java开发人员来说无关紧要,因此它允许针对体系结构进行特定的优化.
正如@BasilBourque在评论中指出的那样:这是Java语言和JVM的所有规范背后的基本思想:定义所需的行为,但将实现细节留给实现者. 多年来已经有许多Java的实现,所有的行为都相同,但是对于"幕后"的内容却有很大的变化.
归档时间: |
|
查看次数: |
118 次 |
最近记录: |