Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 32位JVM和64位JVM之间的Integer.MAX_值是否存在差异?_Java_Integer - Fatal编程技术网

Java 32位JVM和64位JVM之间的Integer.MAX_值是否存在差异?

Java 32位JVM和64位JVM之间的Integer.MAX_值是否存在差异?,java,integer,Java,Integer,32位JVM和64位JVM之间的Integer.MAX_value值是否不同 我正在使用32位JDK编译一个Java类,并将其部署在64位机器上。我只是想确保我可以依靠检测if(aNumber==Integer.MAX_VALUE)否。32位JDK为实例生成32位地址,64位JDK为对象实例生成64位地址。因此,Integer.MAX_值是相同的,因为它只是一个值,而不是对象地址。:) 根据定义编号Integer.MAX\u值=2^31-1 无论代码运行的JVM是32位还是64位,该常量都具有相

32位JVM和64位JVM之间的
Integer.MAX_value
值是否不同


我正在使用32位JDK编译一个Java类,并将其部署在64位机器上。我只是想确保我可以依靠检测
if(aNumber==Integer.MAX_VALUE)
否。32位JDK为实例生成32位地址,64位JDK为对象实例生成64位地址。因此,Integer.MAX_值是相同的,因为它只是一个值,而不是对象地址。:)

根据定义编号
Integer.MAX\u值=2^31-1


无论代码运行的JVM是32位还是64位,该常量都具有相同的值。将此值描述为:

一个常量,它可以容纳一个
int
的最大值,231-1


您可能希望避免使用
=
符号比较整数,因为:

(假设一个成员是类
java.lang.Integer
的对象)


不,没有区别

所有32位和64位的相似之处在于它们可以引用的内存位置的数量。。在32位的情况下,可能的地址数为2^32,在64位的情况下,可能的地址数为2^64


jvm版本与Integer.MAX_值无关,它将保持不变。

请注意,64位jvm可以使用32位引用。请参阅以了解详细信息。它更进一步:编译平台没有任何区别:输出将是相同的。在理想情况下,即使运行时平台也不会有什么不同,但这里可能会有一些细微的差别。谢谢您提供的额外信息。只是想知道在什么情况下我们需要引用check on(Integer==Integer)?我们不应该总是只需要价值检查吗?那么为什么没有人在整数上重载运算符“==”?