Java常用类之 Object类


一、Object类总述:

  1. 是所有类的父类。在Java中,如果一个类没有显式的继承另一个类,那么这个类默认继承了Object类。

  2. Object类中的方法是所有对象都具有的方法。

  3. 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()方法的重写示例:

    1. 比较当前引用是否指向同一个对象;
    2. 判断obj是否为null;
    3. 判断两个引用指向的实际对象类型是否一致;
    4. 强类型转换;
    5. 依次比较各个属性值是否相同。
    @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方法(重点讲解)”

@江河湖泊


Author: xiaoxiao
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source xiaoxiao !
评论
  TOC