一、Object类总述:
是所有类的父类。在Java中,如果一个类没有显式的继承另一个类,那么这个类默认继承了Object类。
Object类中的方法是所有对象都具有的方法。
Object类型可以存储任何对象。
二、方法:
1. getClass():
public final class<?> getClass(){}
作用:返回引用中存储的实际对象类型。
应用:可以用于判断两个引用中实际存储对象类型是否一致。
2. hashCode():
public int hashCode(){}
作用:返回该对象的哈希码值。
哈希值:根据对象的地址或字符串或数字使用hash算法计算出来的int类型的数值。一般情况下,相同的对象返回相同的哈希码。
3. toString():
public String toString(){}
作用:返回该对象的字符串表示(表现形式),可以重写。
4. equals():
public boolean equals(Object obj){}
默认实现为(this == obj),比较两个对象的地址是否相同,可以重写。
equals()方法的重写示例:
- 比较当前引用是否指向同一个对象;
- 判断obj是否为null;
- 判断两个引用指向的实际对象类型是否一致;
- 强类型转换;
- 依次比较各个属性值是否相同。
@Override
public boolean equals(Object obj) {
//判断是否是同一个对象
if (this == obj) {
return true;
}
//判断obj是否为空
if (obj == null) {
return false;
}
//判断他们的实际对象类型是否一致
if (this.getClass() == obj.getClass()) {
//强制类型转换
Teacher t = (Teacher) obj;
//依次比较各个属性是否相同
return name.equals(t.getName()) && age == t.getAge();
}
return false;
}
5. finalize():
当对象被判定为垃圾对象时,由JVM自动调用此方法,用以标记垃圾对象进入回收队列;
垃圾对象:没有有效引用指向此对象。
垃圾回收:由GC销毁垃圾对象,释放数据存储空间。
自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象。
手动回收机制:使用System.gc(); 通知JVM执行垃圾回收。(未定会执行)
三、补充:
1.关于重写equals方法时判断实际类型类型比较时,getClass()方法与instanceof区别。
[]: https://www.cnblogs.com/1693977889zz/p/7089320.html “Java重写equals方法(重点讲解)”
@江河湖泊