Java 无法找到输出为128的原因和方式
我对下面的程序有些困惑。这里我得到的输出是128Java 无法找到输出为128的原因和方式,java,Java,我对下面的程序有些困惑。这里我得到的输出是128 int i=0; while(Integer.valueOf(i)==Integer.valueOf(i)) i++; System.out.println(i); output: 128 JVM为Integer类缓存-128到127之间的int值。因此,以下语句将返回true,最多返回127: Integer.valueOf(i)==Integer.valueOf(i) 默认
int i=0;
while(Integer.valueOf(i)==Integer.valueOf(i))
i++;
System.out.println(i);
output: 128
JVM为
Integer
类缓存-128到127之间的int
值。因此,以下语句将返回true,最多返回127:
Integer.valueOf(i)==Integer.valueOf(i)
默认情况下,超过127,valueOf
返回一个新的Integer
对象
在
while
循环的最后一次迭代中,i
将为127,i++
将其更改为128。这就是为什么输出是128而不是127。JVM为Integer
类缓存介于-128和127之间的int
值。因此,以下语句将返回true,最多返回127:
Integer.valueOf(i)==Integer.valueOf(i)
默认情况下,超过127,valueOf
返回一个新的Integer
对象
在
while
循环的最后一次迭代中,i
将为127,i++
将其更改为128。这就是为什么输出是128而不是127。正是如此。若要自己计算,请将valueOf
更改为parseInt
,然后看看会发生什么。@Musaddique请在此处阅读@user3469481 parseInt无效。因为我是int。若要自己计算,请将valueOf
更改为parseInt
,然后看看会发生什么。@Musaddique请在此处阅读@user3469481 parseInt无效。因为我是int。