我记得有什么自反性传递性什么的,但具体忘记了,你能说说吗?

解决方案 »

  1.   

    查了下,正确的equals()方法满足五个条件:(1)     自反性。对于任意的x,x.equals(x)一定返回true。(2)     对称性。对于任意的x和y,如果y.equals(x)返回true,则x.equals(y)也返回true。(3)     传递性。对于任意的x、y、z,如果有x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)一定返回true。(4)     一致性。对于任意的x和y,如果对象中用于等价比较的信息没有改变,那么无论调用x.equals(y)多少次,返回的结果应该保持一致,要么一直是true,要么一直是false。(5)     对任何不是null的x,x.equals(null)一定返回false。equals()比较的是对象的地址,如果要使用自己的类作为HashMap的label,必须同时重载hashCode()和equals()方法。
      

  2.   

    其实这些东西在API文档里都写了,查一下文档就行了
      

  3.   

    equals()比较的是对象的地址......equals()比较的是地址吗?
      

  4.   

    在Object里 equals和== 一样 都是比较地址  equals底层就是用==来实现的,只不过一些类里重写了该方法 为比较内容
      

  5.   

    equals()是判断两个引用指向的内存地址中的内容是否相同
      

  6.   

    equals() 比较的是里面的值
    与类型 与地址 都没有关系
      

  7.   

    == 比较的是 地址和值 还有类型 都必须一样 才返回 true
    equals() 只比较里面的值