Java 中的 == 和 equals()

Posted by icoding168 on 2020-01-06 20:32:18

分类: Java  

== : 它的作用是判断两个对象的地址是不是相等。即判断两个对象是不是同一个对象。(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)

equals() : 它的作用也是判断两个对象是否相等,它不能用于比较基本数据类型的变量。equals()方法存在于Object类中,而Object类是所有类的直接或间接父类。

equals() 方法存在两种使用情况:

情况 1:类没有覆盖 equals() 方法,此时 equals() 等价于 ==

情况 2:类覆盖了 equals() 方法,通过覆盖 equals() 方法来比较两个对象的内容是 否相等,若它们的内容相等则返回 true

来自某个网友的妙语:

你和另一个人比较,“==” 返回false,因为它的意义是你跟那个人不是同一个人。
“equals”可以返回true,因为equals比的是你和他都有手,你和他都有脚,你和他都直立行走,嗯,都是人类。