java八股文面试[java基础]——Object类有哪些方法

通过IDEA打开Object类就可以看到

(1)clone方法

保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。

主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这时就需要在类中复写clone方法。

(2)getClass方法

final方法,获得运行时类型

(3)toString方法

该方法用得比较多,一般子类都有覆盖。

(4)finalize方法

该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。

(5)equals方法

该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。

(6)hashCode方法

该方法用于哈希查找,可以减少在查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。

一般必须满足obj1.equals(obj2)==true。可以推出obj1.hashCode()==obj2.hashCode(),但是hashCode相等不一定就满足equals。不过为了提高效率,应该尽量使上面两个条件接近等价

如果不重写hashcode(),在HashSet中添加两个equals的对象,会将两个对象都加入进去

(7)wait方法

wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。

调用该方法后当前线程进入睡眠状态,直到以下事件发生。

(1)其他线程调用了该对象的notify方法。

(2)其他线程调用了该对象的notifyAll方法。

(3)其他线程调用了interrupt中断该线程。

(4)时间间隔到了。

此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。

(8)notify方法

该方法唤醒在该对象上等待的某个线程。

(9)notifyAll方法

该方法唤醒在该对象上等待的所有线程

(10)registerNatives

Java程序要想调用本地方法,需要执行两个步骤:

第一,通过System.loadLibrary()将包含本地方法实现的动态文件加载进内存;

第二,当Java程序需要调用本地方法时,虚拟机在加载的动态文件中定位并链接该本地方法,从而得以执行本地方法。

registerNatives()方法的作用就是取代第二步,让程序主动将本地方法链接到调用方 ,当Java程序需要调用本地方法时就可以直接调用,而不需要虚拟机再去定位并链接。

知识速记:类 克隆 打印 释放 本地 哈希(2个) 线程(4个)

知识参考:

Object类的常用方法_object类的方法_贤云Ye鹤的博客-CSDN博客Java基础 -- java 类中registerNatives()方法的作用是什么_小明同学~~的博客-CSDN博客

相关推荐
踢足球09296 小时前
寒假打卡:2026-01-20
职场和发展·学习方法
武清伯MVP7 小时前
聊聊最近的一些面试体验
面试·职场和发展
a努力。7 小时前
字节Java面试被问:TCP的BBR拥塞控制算法原理
java·开发语言·python·tcp/ip·elasticsearch·面试·职场和发展
C雨后彩虹8 小时前
羊、狼、农夫过河
java·数据结构·算法·华为·面试
重生之后端学习8 小时前
19. 删除链表的倒数第 N 个结点
java·数据结构·算法·leetcode·职场和发展
weixin_457297109 小时前
大数据面试常见问题
大数据·面试·职场和发展
a努力。10 小时前
虾皮Java面试被问:分布式Top K问题的解决方案
java·后端·云原生·面试·rpc·架构
机器学习社区12 小时前
《大模型面试宝典》(2026版) 正式发布!
人工智能·语言模型·自然语言处理·面试·职场和发展·面试题
BlockChain88813 小时前
Web3 后端面试专用版
java·面试·职场和发展·go·web3
期末考复习中,蓝桥杯都没时间学了13 小时前
力扣刷题记录3
算法·leetcode·职场和发展