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)
  • 相关阅读:
    Eclipse安装常用离线插件
    Eclipse添加Maven、Jdk、Tomcat
    每天总结模电-去耦电容(一)
    4K显示器含义
    c语言的学习方法
    悲伤逆流成河读后感
    晶体管(三极管,场效应管,MOS以及CMOS)的区别
    强电的元器件认识
    ElasticSearch
    DataGrip
  • 原文地址:https://www.cnblogs.com/mayuxin/p/12841559.html
Copyright © 2011-2022 走看看