为什么 == 对于某些整数对象为 true?
可能的重复:
整数包装器对象仅在值 127 内共享相同的实例?
我从Khalid Mughal SCJP复制了以下程序片段,但我无法
理解输出。
public class RQ200_60 {
public static void main(String[] args) {
Integer i = -10;
Integer j = -10;
System.out.print(i==j); // output: true -- why true?
System.out.print(i.equals(j)); // output: true
Integer n = 128;
Integer m = 128;
System.out.print(n==m); // output: false
System.out.print(n.equals(m)); // output: true
}
}
上面的程序为第一个 print 语句提供 true 输出 true,但它应该给出 false,因为它是与 == 关系运算符的引用比较。但是第三版给出了错误,我不明白这种不一致。
非常感谢您的解释!