class Value
{
int i;
}
class Test12
{
public static void main(String[] args)
{
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1.equals(n2));//打印结果是ture
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));//打印结果是false
}
}
不理解,哪位大神能仔细讲讲 作者: 李桐 时间: 2012-12-7 23:49
Integer n1 = new Integer(666);
Integer n2 = new Integer(666);
System.out.println(n1.equals(n2));//Integer比较此对象与指定对象。当且仅当参数不为 null,并且是一个与该对象包含相同 int 值的 Integer 对象时,结果为 true。(在jdk1.6文档里看到的)
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));
//类的equals方法一般使用hashcode的引用,两个引用肯定不同所以是false,如果想equals方法为true的话就要以类中某些字段为参照,覆写hashCode和equals方法,如图,这个在eclipse中有快捷键,张孝祥老师也再视频里讲了