聊一聊 Object 类

点击上方关注“追梦 Java”,一起追梦!

请你说一下 Object 类中有哪些方法?

Object 类中主要方法有:对象克隆方法 clone()、对象输出方法 toString()、对象比较方法 equals()、获取 hash 码方法 hashCode()、获取 class 类对象方法 getClass()、线程等待方法 wait()、线程唤醒方法notify()、唤醒全部等待线程方法notifyAll()、垃圾回收前释放finalize()等。

请你说一下对象克隆方法 clone() 为什么返回 Object 类型,以及你了解的 clone() 方法的使用。

克隆方法可能针对所有类的对象使用,因此用所有类的父类 Object 类来实现返回类型的统一。

克隆对象所在的类一定要实现 java.lang.Cloneable 接口,实现了 Cloneable 接口 的类只需要调用 Object 类的 clone() 方法就能实现克隆操作。

请你说一下为什么直接输出一个对象时,系统会默认调用 toString() 方法?

当我们用打印流 PrintStream 输出对象的时候,默认调用 String.valueOf(obj)方法;String 类的 valueOf(obj) 方法会默认判断如果对象不为空,就调用对象的 toString() 方法。

请你说一下对象比较方法 equals(Object obj) 和获取hash 码方法 hashCode() 在什么时候会调用。

equals(Object obj) 方法除了代码显示调用外,当我们在保存 Set 集合时,为了判断是否为重复对象,系统会默认会调用 hashCode() 和 equals(Object obj) 方法;另外 hashCode() 方法返回一个 int 类型的唯一编码,比较是先判断 hash 编码是否相同,然后再调用 equals(Object obj) 方法比较内容。

请你说一下对线程等待和线程唤醒的理解。

当执行了线程等待方法 wait() 后,一直到执行唤醒线程notify() 方法或者唤醒全部线程 notifyAll() 方法后才能唤醒线程,等待 CPU 的调度后开始执行。

请你说一下获取 Class 类的实例化对象有几种方式?

1、通过类本身的 class 属性实例化【类.class】;

2、通过 Object 类的 getClass()方法实例化【对象.getClass()】;

3、通过【Class.forName()方法】实例化,这种方式最常用,体现出了反射的动态性;

4、通过类的加载器获取;

请你说一下获取 Class 类的实例化对象有几种方式?

知识指导行动,行动决定命运。

长按二维码关注追梦Java

有用的话点个在

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值