Object类的说明
明确:java.lang.Object
任何一个Java类(除Object类)都直接或间接的继承于Object类
Object类称为Java类的根父类
Object类中声明的结构(属性、方法等)就具有通用性。
Object类中没有声明属性
Object类提供了一个空参构造器
重点关注:Object类中声明的方法
常用方法
重点方法:equals() / toString()
了解方法:clone() / finalize()
目前不需要关注:getClass() / hashCode() / notify() / wait() / wait(xx) / wait(xx,yy)
equals()的使用
3.1 适用性:
任何引用数据类型都可以使用
3.2 java.lang.Object类中equals()的定义:
public boolean equals(Object obj) { return (this == obj); }
3.3 子类使用说明:
自定义的类在没有重写Object类中equals()方法的情况下,调用的就是Object类中声明的equals(),比较两个对象的引用地址是否相同。(或比较两个对象是否指向了堆空间中的同一个对象实体)
对于想String、File、Date和包装类等。他们都重写了Object类中的equals()方法,用于比较两个对象的实体内容是否相等。
3.4 开发中使用说明:
实际开发中,针对于自定义的类,常常会判断两个对象是否equals(),而此时主要是判断两个对象的属性值是否相等。所以,我们要重写Object类的equals()方法。
3.5 高频面试题:区分 == 和 equals()
==:运算符
1️⃣ 使用范围:基本数据类型、引用数据类型
2️⃣ 基本数据类型:判断数据值是否相等
引用数据类型:比较两个引用变量的地址值是否相等。(或比较两个引用是否指向同一个对象实体)
equals()方法:
使用范围:只能使用在引用数据类型上。
具体使用:对于类来说,重写equals()和不重写euqlas()的区别