Java中的object类

Object类,属于Java.lang包,是默认引入的

        Object类是类层次结构的根类,每个object类使用Object类作为超类(父类)

        所有对象(包括数组)都继承了Object中的方法

介绍Object中典型的几个方法:

equals() :判断某个对象是否与此对象相同

        ==,比较运算符,可以判断基本类型,可以判断引用类型

                如果判断基本数值类型,则判断的是两者数值是否相等

                如果判断引用类型,则判断的是两者的地址是否相同

        equals,Object中的方法,只能用于判断引用类型

                equals()方法默认判断两个引用类型的地址是否相同

// Object中的equals方法
public boolean equals(Object obj) {
    return (this == obj); // 比较的是两个对象的地址
}

        子类中大多会重写equals方法:

                实现根据自己的标准判断两个对象是否相等

// String类中的equals方法:
public boolean equals(Object obj) {
    // 首先判断两个对象的地址是否相同
    if (obj == this) {
        return true; // 说明是同一个对象,直接返回true
    }
    // 判断传入的对象是否是String的子类
    if (obj instanceof String) {
        // 如果是的话,将其从Object类转为String类继续进行比较
        String anotherString = (String)obj;
        int n = value.length; // 记录字符串的长度
        // 两个字符串的长度相同,继续进行比较
        if (n == anotherString.value.length) {
            // 定义字符数组,存储两个字符串中的每个字符
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = 0;
            while (n-- != 0) {
                // 挨个比较每个字符是否相等
                if (v1[i] != v2[i])
                    return false;
                i++;
            }
            // 完成每个字符的比较
            return true;
        }
    }
    // 如果不是String的子类,则直接返回false
    return false;
}

finalize():当垃圾回收器确定不存在对该对象的更多引用时,由垃圾回收期调用该方法

        某个对象没有任何引用的时候,JVM就会认为该对象是一个垃圾对象,使用垃圾回收机制销毁该对象

        某个对象被回收或者销毁时,系统就会自动调用该对象的finalize方法

        垃圾回收机制,是由系统(自己的算法GC)来决定什么时候进行调用,也可以通过System.gc()主动调用垃圾回收机制

        子类重写该方法,可以做一些释放资源的操作:数据库的连接或打开、关闭文件

getClass():返回该对象的运行时类

hashCode():返回该对象的哈希码值

        hashCode()方法可以提高哈希结构容器的效率

        哈希值主要是根据地址号来的,但是不能将哈希值等同于对象的地址

        两个引用如果指向同一对象,即同一地址,则其哈希值相同;如果指向不同的对象,即不同地址,则其哈希值不同

toString():返回该对象的字符串表示

// Object中的toString方法:
public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
       // getClass().getName()得到的是全类名--包名+类名
       // Integer.toHexString(hashCode())得到的是该对象的哈希值转为十六进制字符串的形式
}

        子类中往往重写Object中的toString方法,返回对象的属性

        直接输出一个对象时,默认调用该对象的toString方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值