• JAVA equals 和 “==”的异同


    最近项目中遇到一个添加判重的问题,判重无效,一直找不到原因,于是查了一下equals的用法,感觉蒙蒙哒~~

    添加数据判重,当判重到时间的时候时间都是"yyyy-MM-dd"这样的,但判重失败,查了一下,原来equals前后两个

    比较时对象可以不一样,但数据类型必须得相同,Date类型的"2015-04-15"与String类型的"2015-04-15"着实不一样,想想也是。。。

    以下就是equals和"=="之间的异同:

    同:

    如果没有重写新类的equals方法,则该方法和“==”操作符一样在两个变量指向同一对象时返回真。

    但是java推荐的是使用equals()方法来判断两个对象的内容是否一样。

    异:

     equals()是Object类的一个方法,指示某个其他对象是否与此对象“相等”。

    Object是类层次结构的根类,它是每个类的超类。每个类都可以重写equals()方法,Eg:String类。

    引用类型比较引用;基本类型比较值。

    equals()方法只能比较引用类型,"=="可以比较引用及基本类型。

    使用equals()方法进行比较时,对类File、String、Date及封装类(Wrapper Class)来说,是比较类型及内容。

    使用"=="进行比较时,符号两边的数据类型必须一致(可相互转换的基本类型除外),否则编译出错。

    也就是说,如果比较对象和比较类型相同时,equals和“==”的效果相同,

    而equals可以比较不同对象类型相同的内容,“==”比较的必须是同一对象统一地址统一数据类型的内容。

  • 相关阅读:
    Daily Scrum (2015/10/28)
    Dailu Scrum (2015/10/27)
    wenbao与cmd
    wenbao与IIS
    wenbao与模板
    wenbao与git
    wenbao与vscode
    wenbao与矩阵
    wenbao与面试题
    wenbao 与将linux系统(kali)装入U盘
  • 原文地址:https://www.cnblogs.com/ForeverLover/p/4428766.html
Copyright © 2020-2023  润新知