==
: 它的作用是判断两个对象的地址是不是相等。即判断两个对象是不是同一个对象。(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)
equals()
: 它的作用也是判断两个对象是否相等,它不能用于比较基本数据类型的变量。equals()
方法存在于Object
类中,而Object
类是所有类的直接或间接父类。
equals()
方法存在两种使用情况:
情况 1:类没有覆盖 equals() 方法,此时 equals() 等价于 ==
情况 2:类覆盖了 equals() 方法,通过覆盖 equals() 方法来比较两个对象的内容是 否相等,若它们的内容相等则返回 true
来自某个网友的妙语:
你和另一个人比较,“==” 返回false,因为它的意义是你跟那个人不是同一个人。
“equals”可以返回true,因为equals比的是你和他都有手,你和他都有脚,你和他都直立行走,嗯,都是人类。