引用,你就当是内存地址啦。
v1,v2的内存地址你认为一样么,当equals默认比较内存地址时,当然返回
false了。

解决方案 »

  1.   

    当然,v1.equals(v2)比较两个对象引用
    而(v1.i).equals(v2.i)比较两个值;句柄是翻译的问题,我觉得referance翻译成引用更好
      

  2.   

    v1和v2这两个对象是不同的,因为内存地址是不同的,而v1.equals(v2)比较的是两个对象引用,所以结果是false
    我理解的句柄是引用
      

  3.   

    因为class Value的父类是java.lang.Object。而class Value没有重载方法
    equals(),所以eauals()实现的是Object的缺省如下:
    public boolean equals(Object obj) {
    return (this == obj);
        }
    正是句柄的比较。
      

  4.   

    ==和equals是经常让人搞错的,就看equals有没有重载。很多时候要分别试一下。