zoukankan      html  css  js  c++  java
  • ==和equals的区别

    首先“==”是运算符,比较的是两个对象的地址,equals是Object类的方法,可以比较地址也可以比较内容。

    作用:在使用类中,如果没有重写equals方法,那么equals方法和==的作用就是相同的,因为Object类中的equals方法的实现原理就是使用==来实现的。如果需要比较两个对象的内容,就需要写equals方法。

    • 使用“==”操作符检查“参数是否为这个对象的引用”
    • 使用instanceof操作符检查“参数是否为正确的类型”
    • 对于类中的关键属性,检查参数传入对象的属性是否与之相匹配
    • 编写完equals方法后,问自己它是否满足对称性、传递性、一致性
    • 不要将equals方法参数中的Object对象替换为其他的类型,在重写时不要忘掉@Override注解

    重写equals方法方法需要遵守以下约定:

    • 自反性(x.equals(x)必须返回true)
    • 对称性(x.equals(y)返回true时,y.equals(x)也必须返回true)
    • 传递性(x.equals(y)和y.equals(z)都返回true时,x.equals(z)也必须返回true)
    • 一致性(当x和y引用的对象信息没有被修改时,多次调用x.equals(y)应该得到同样的返回值)
    • 非空性(对于任何非null值的引用x,x.equals(null)必须返回false)
  • 相关阅读:
    WebService学习--(一)webservice相关概念
    根据日期推断某天某周某日
    Eclipse快捷键
    Java IO学习--(五)字节和字符数组
    Java IO学习--(四)网络
    Java IO学习--(三)通道
    Java IO学习--(二)文件
    Java IO学习--(一)概述
    JVM学习--(八)java堆分析
    Linux加密、安全版块、root密码破解
  • 原文地址:https://www.cnblogs.com/mayuxin/p/12841559.html
Copyright © 2011-2022 走看看