1、超类Object的equals()底层原理:
在Object超类中已经提供了equals()方法,源码如下:
public boolean equals(Object obj) { return (this == obj); }
所有的对象都拥有标识(内存地址)和状态(数据),同时“==”比较的是两个对象的内存地址,在Object的equals()底层调用的是==号,所以说Object的equals()是比较两个对象的内存地址是否相等,如果为true,则表示的引用的是同一个对象。
2、equals()与 == 的区别:
(1)== 号在比较基本数据类型时比较的是数据的值,而比较引用类型时比较的是两个对象的地址值;
(2)equals()不能用于基本的数据类型,对于基本的数据类型要用其包装类。
(3)默认情况下,从Object继承而来的 equals 方法与 “==” 是完全等价的,比较的都是对象的内存地址,因为底层调用的是 “==” 号,但我们可以重写equals方法&