SCJP中的一道题,大家探讨!
class Value {
int i;
}
public class EqualsMethod2 {
public static void main(String[] args) {
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));
}
}
说说两个问题:1.输出结果;2.输出结果的原因.
------解决方案--------------------1.输出结果:false;
2.输出结果的原因,Value 类没有重载equals方法,于是v1.equals(v2)会调用Object的equals方法,而Object的equals是对refrence进行比较,呵呵,而v1,v2引用的是通过new操作产生的两个不同对象.