日期:2014-05-20  浏览次数:20632 次

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操作产生的两个不同对象.