java .....equals

java .....equals
  1. Integer,String equals比较的是内容
  2. 对象比较的的是内存地址

  3. 当参数obj引用的对象与当前对象为同一个对象时 true 反之是false

  4. JDK类中有一些类覆盖了oject类的equals()方法,比较规则为:

    如果两个对象的类型一致,并且内容一致,则返回true,这些类有:
    java.io.file,java.util.Date,java.lang.string,包装类(Integer,Double等)
    
  5. 重写equals方法时

    1、自反性   :对任意引用值X,x.equals(x)的返回值一定为true.
    2、对称性:   对于任何引用值x,y,当且仅当y.equals(x)返回值为true时,x.equals(y)的返回值一定为true;
    3、传递性:如果x.equals(y)=true, y.equals(z)=true,则x.equals(z)=true
    4、一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变
    5、非空性:任何非空的引用值X,x.equals(null)的返回值一定为false
    
  6. 重写equals方法的要点

    1、使用==操作符检查“实参是否为指向对象的一个引用”。 
    2、使用instanceof操作符检查“实参是否为正确的类型”。 
    3、把实参转换到正确的类型。 
    4、对于该类中每一个“关键”域,检查实参中的域与当前对象中对应的域值是否匹 配。对于既不是float也不是double类型的基本类型的域,可以使用==操作符 进行比较;对于对象引用类型的域,可以递归地调用所引用的对象的equals方法; 对于float类型的域,先使用Float.floatToIntBits转换成int类型的值, 然后使用==操作符比较int类型的值;对于double类型的域,先使用Double.doubleToLongBits转换成long类型的值,然后使用==操作符比较 long类型的值。 
    5、当你编写完成了equals方法之后,应该问自己三个问题:它是否是对称的、传 递的、一致的?(其他两个特性通常会自行满足)如果答案是否定的,那么请找到 这些

转载于:https://www.cnblogs.com/jorryLiu/p/4305180.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值