当前位置: 代码迷 >> Java相关 >> JAVA equals 跟 “==”的异同
  详细解决方案

JAVA equals 跟 “==”的异同

热度:597   发布时间:2016-04-22 20:25:57.0
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可以比较不同对象类型相同的内容,“==”比较的必须是同一对象统一地址统一数据类型的内容。

  相关解决方案