public class Test {
public static void main(String[] args) {
Integer i=555,j=555;
System.out.println(i==j); //false
Integer l=5,n=5;
System.out.println(l==n); //true
}
}
为什么,爪哇?这怎么可能呢?
您正在比较Integer
具有相同值的两个不同类实例的引用,因此您必须使用该equals
方法(因为它必须用于比较对象之间的相等性):
Integer i=555,j=555;
System.out.println(i==j); //false
Integer i=555,j=555;
System.out.println(i.equals(j)); //true
但是Integer
有一个Integer
对象实例池,其int
值介于 -128 和 127 之间。所以当你这样做时
Integer l=5,n=5;
System.out.println(l==n); //true
您收到true
sincel
并n
指向同一个对象引用。