==
:他的作用是判断两个对象的地址是否相等;即判断两个对象是否为同一个对象
基本数据类型==
比较的是值;引用数据类型==
比较的是内存地址
因为Java只有值传递,所以对于==
而言,不管是比较基本数据类型,还是引用数据类型的变量,其最终的本质还是比较的是值,只是引用类型变量存的值是对象的地址。
equals():
作用是判断两个对象是否相等,但是他不能比较基本数据类型的变量。
equals()
方法存在于Object
类中,而Object
类是所有类的直接或间接父类。
Object
类equals()
方法:
public boolean equals(Object obj) {
return (this == obj);
}
equals()
方法存在两种使用情况:
情况 1:类没有覆盖 equals()
方法。则通过equals()
比较该类的两个对象时,等价于通过“==
”比较这两个对象。使用的默认是 Object
类equals()
方法。
情况 2:类覆盖了 equals()
方法。一般,我们都覆盖 equals()
方法来两个对象的内容相等;若它们的内容相等,则返回 true(即,认为这两个对象相等)。