暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

聊一聊 Object 类

追梦Java 2023-09-12
80
点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~

在 Java 中,Object 类是所有类的基类,它定义了一些常见的行为和属性。在 Java 面试中,关于 Object 类的问题经常会被问到。今天我们就来看看可能会涉及到的一些问题。


请你说一下 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 类的实例化对象有几种方式?

以上是常见的关于 Object 类的面试问题,掌握 Object 类的基本概念和常用的属性和方法,并了解其在 Java 中的重要地位是至关重要的。

文章转载自追梦Java,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论