【Java基础面试二十】、介绍一下Object类中的方法

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。

面试官:介绍一下Object类中的方法

参考答案:

Object类提供了如下几个常用方法:

  • Class<?> getClass():返回该对象的运行时类。

  • boolean equals(Object obj):判断指定对象与该对象是否相等。

  • int hashCode():返回该对象的hashCode值。在默认情况下,Object类的hashCode()方法根据该对象的地址来计算。但很多类都重写了Object类的hashCode()方法,不再根据地址来计算其hashCode()方法值。

  • String toString():返回该对象的字符串表示,当程序使用System.out.println()方法输出一个对象,或者把某个对象和字符串进行连接运算时,系统会自动调用该对象的toString()方法返回该对象的字符串表示。Object类的toString()方法返回 运行时类名@十六进制hashCode值 格式的字符串,但很多类都重写了Object类的toString()方法,用于返回可以表述该对象信息的字符串。

另外,Object类还提供了wait()、notify()、notifyAll()这几个方法,通过这几个方法可以控制线程的暂停和运行。Object类还提供了一个clone()方法,该方法用于帮助其他对象来实现"自我克隆",所谓"自我克隆"就是得到一个当前对象的副本,而且二者之间完全隔离。由于该方法使用了protected修饰,因此它只能被子类重写或调用。

扩展阅读

Object类还提供了一个finalize()方法,当系统中没有引用变量引用到该对象时,垃圾回收器调用此方法来清理该对象的资源。并且,针对某一个对象,垃圾回收器最多只会调用它的finalize()方法一次。

注意,finalize()方法何时调用、是否调用都是不确定的,我们也不要主动调用finalize()方法。从JDK9开始,这个方法被标记为不推荐使用的方法。

相关推荐
武子康3 分钟前
Java-114 深入浅出 MySQL 开源分布式中间件 ShardingSphere 深度解读
java·数据库·分布式·mysql·中间件·性能优化·开源
你我约定有三17 分钟前
面试tips--JVM(4)--Minor GC & Major GC & Full GC
jvm·面试·职场和发展
Li_yizYa18 分钟前
JVM:内存区域划分、类加载的过程、垃圾回收机制
java·jvm
BYSJMG18 分钟前
计算机毕设推荐:基于python的农产品价格数据分析与预测的可视化系统的设计与实现 基于Python农产品管理系统【源码+文档+调试】
大数据·开发语言·hadoop·python·数据分析·django·课程设计
Goboy20 分钟前
有人敲门,开水开了,电话响了,孩子哭了,你先顾谁?
后端·面试·架构
失散1324 分钟前
并发编程——06 JUC并发同步工具类的应用实战
java·架构·并发编程
2301_7813925225 分钟前
从spring MVC角度理解HTTP协议及Request-Response模式
java·spring·mvc
程序员江鸟25 分钟前
Java面试实战系列【JVM篇】- JVM内存结构与运行时数据区详解(共享区域)
java·jvm·面试
火山kim25 分钟前
一文速通C#(网页资源版)
开发语言·c#
努力也学不会java31 分钟前
【设计模式】三大原则 单一职责原则、开放-封闭原则、依赖倒转原则
java·设计模式·依赖倒置原则·开闭原则·单一职责原则