我对下面的节目感到困惑。这里输出为128。
int i=0;
while(Integer.valueOf(i)==Integer.valueOf(i))
i++;
System.out.println(i);
output: 128
答案 0 :(得分:4)
JVM将int
类的Integer
值缓存在-128到127之间。因此,以下语句将返回true到127:
Integer.valueOf(i)==Integer.valueOf(i)
超过127时,valueOf
默认返回一个新的Integer
对象。
在while
循环的最后一次迭代中,i
将为127,i++
会将其更改为128.这就是输出为128而不是127的原因。