public class Equivalence {
public static void main(String[] args) {
Integer i1=new Integer(47);
Integer i2=new Integer(47);
System.out.println(i1==i2);
System.out.println(i1.equals(i2));
}
}
输出结果为 false , true
==比较内存地址,equals比较值。
i1,i2分别指向两个new的Integer对象,new的对象都分配在堆中,它们的内存地址不一样,所以是false;
equals比较的是值,是true。
public static void main(String[] args) {
Integer i1=new Integer(47);
Integer i2=new Integer(47);
System.out.println(i1==i2);
System.out.println(i1.equals(i2));
}
}
输出结果为 false , true
==比较内存地址,equals比较值。
i1,i2分别指向两个new的Integer对象,new的对象都分配在堆中,它们的内存地址不一样,所以是false;
equals比较的是值,是true。