1、==
当使用 == 比较基本数据类型时是比较值是否相等,当使用 == 比较引用数据类型时,是比较对象的内存地址是否相等,也就是判断是不是同一个对象。
2、equals
equals 方法是 Object 类的方法,又以为所有类都默认继承了 Object 类,所以所有类都有 equals 方法。
equals 方法如果没有重写的话,与 == 的功能一样,比较的是内存地址。JDK 源码如下:
public boolean equals(Object obj) {
return (this == obj);
}
如果重写了 equals 方法就按照自定义的规则判断对象是否相等。