java中常用类Object详解

说明:
Object是所有类的父类,任何类都默认直接或者间接继承Object,理论上由于所有的类都继承在Object类,因此省略了extends Object关键字。
该类中主要有以下方法: toString(),getClass(),equals(),clone(),finalize(), 其中toString(),getClass(),equals是其中最重要的方法。
在这里插入图片描述
Object类的构造
Object类只有一个空参数构造器,虽然我们一般不new Object() 对象,但是需要一个空参数构造器,作用是子类构造器使用时候默认会调用父类的无参数构造器,所以必须有一个构造器

Object 的方法详解
Object类的重要四个方法
(1) equals方法
源码如下:
在这里插入图片描述
a. equals 方法可以比较的数据类型
Object 类的equals 方法只能判断引用类型,基本数据类型也没有equals方法,当然 equals方法可以判断任何引用类型,编译不会报错,从源码可以看出Object 的equals判断的是地址是否相等
往往子类需要重写equals 方法,判断内容是否相等,比如String, ArrayList Integer …

b. equals方法& == 的区别(面试)
在这里插入图片描述
c. 重写equals方法
所以类都继承自Object,都默认有Object的equals方法,默认是比较地址的,所以要重写equals方法,比较来个引用类型的地址而不是内容
在这里插入图片描述
d. equals 方法的案例:
在这里插入图片描述

(2)toString 方法
Object 的toString 方法如下:默认返回:
全类名+@+地址号的十六进制
源码如下:
在这里插入图片描述
很多类已经重写了toString 了,比如String
返回了字符串本身
引用类重写toString() 方法,返回属性值
在这里插入图片描述
注意事项:
println§ 中默认调用了p的toString()
字符串拼接(“hello”+p)也默认使用了p的toString()

 public static void main(String[] args) {
        //Person 类中已经重写了toString 方法
 /*       @Override
        public String toString() {
            return name+"\t"+age;
        }*/
        Person p1 = new Person("zhangsan", 20);
        //println 打印默认调用了toString() 方法
        //以下倆行代码执行结果一样 zhangsan	20
        System.out.println(p1.toString());
        System.out.println(p1);


        //字符串拼接也默认调了toString 方法
        //結果為hellozhangsan	20
        String detail = "hello"+p1;
        System.out.println(detail);

    }

总结:
在这里插入图片描述
(3) hashCode()方法
功能: 返回对象的hash值(约等于对象的地址号)
推论: 如果hash 不一样,则俩个对象不一样
好处: 提高集合中查找相同元素的效率

(4) fanilize()方法
java 是自动垃圾回收机制: 主线程开启, 默认开启了垃圾回收的后台线程
垃圾回收器线程会监控程序执行过程是否有需要回收的对象,如果有,启动回收,不需要程序员手动回收
垃圾回收器回收的对象是该对象没有任何引用指向了
这是Object类的fanilize() 方法,由对象的垃圾回收器调用,如果子类重写就是想要在对象回收之前写"遗言"
在这里插入图片描述
注意:
Object类中的getClass(),notify(),notifyAll(),wait()等方法被定义为final类型,因此不能重写。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值