==可用来比较Integer对象吗

来源:百度知道 编辑:UC知道 时间:2024/05/13 15:42:52
public class Test {

public static void main(String args[]){
Integer a=new Integer(3);
Integer b=new Integer(3);
System.out.println(a==b);
}
}
为什么输出是false呢,a不是等于b的吗

new 一次代表产生一个对象,那么就会分配一个内存,两次就会分配两个内存空间(但内容是一样的),即两个不同的对象,A,B分别代表两个不同对象的引用(地址),当然是不同的。你现在是想要比较内容,应该使用equals方法

这个两个不同的对象,他们分配的空间地址都不一样,当然是false了,用equals会输出true。
a.equals(b);

比的是引用 而不是内容