Java常用类:Object类
1|0Java常用类:Object类
目录
1|1概述
- 它为超类、基类,位于继承数的最顶层,是所有类的直接或间接父类
- 任何类只要没有声明 extends 显示继承某个类,那么都会默认继承 Object 类,否则间接继承 Object 类
- Object 类中所定义的方法,是所有对象都具备的方法,所以子类可以使用 Object 的所有方法
所有方法:
修饰符和类型 | 方法及描述 |
---|---|
protected Object |
clone() 创建并返回此对象的副本。 |
boolean |
equals(Object obj) 指示一些其他对象是否等于此。 |
protected void |
finalize() 当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。 |
Class<?> |
getClass() 返回此 Object 的运行时类。 |
int |
hashCode() 返回对象的哈希码值。 |
void |
notify() 唤醒正在等待对象监视器的单个线程。 |
void |
notifyAll() 唤醒正在等待对象监视器的所有线程。 |
String |
toString() 返回对象的字符串表示形式。 |
void |
wait() 导致当前线程等待,直到另一个线程调用该对象的 notify() 方法或 notifyAll() 方法。 |
void |
wait(long timeout) 导致当前线程等待,直到另一个线程调用 notify() 方法或该对象的 notifyAll() 方法,或者指定的时间已过。 |
void |
wait(long timeout, int nanos) 导致当前线程等待,直到另一个线程调用该对象的 notify() 方法或 notifyAll() 方法,或者某些其他线程中断当前线程,或一定量的实时时间。 |
示范类:
1|2getClass()方法
-
类型:Class<?>
-
返回引用中储存的实际对象类型
-
作用:通常用于判断两个引用中实际存储对象类型是否一致
-
示例:
输出
1|3hashCode()方法
-
类型:int
-
返回该对象的哈希码值
-
哈希值根据 对象的地址 或 字符串 或 数字 使用 hash 算法计算出来的 int 类型的数值
-
一般情况下相同的对象返回相同的哈希码值
-
示例:
输出
1|4toString()方法
-
类型:String
-
返回该对象的字符串表示形式
-
示例:
输出
-
拓展:还可以通过在类中重写 toString() 方法,返回自己自定义的字符串
-
示例:
重写 Student 类
输出
1|5equals()方法
-
类型:boolean
-
默认实现为(this == obj),比较两个对象地址是否相同
-
可进行覆盖,比较两个对象的内容是否相同
-
示例:
输出
equals()方法的覆盖步骤
-
比较两个引用是否指向同一个对象
-
判断 obj 是否为 null
-
判断两个引用指向的实际对象类型是否一致
-
强制类型转换
-
依次比较各个属性值是否相同
-
示例
重写 equals() 方法
输出
1|6finalize()方法(已弃用)
- 当对象被判定为垃圾对象时,由 JVM 自动调用此方法,用以标记垃圾对象,进入回收队列
- 垃圾对象:没有有效引用指向此对象时,为垃圾对象
- 垃圾回收:由 GC 销毁垃圾对象,释放数据存储空间
- 自动回收机制:JVM 的内存耗尽,一次性回收所有垃圾对象
- 手动回收机制:使用
System.gc();
通知 JVM 执行垃圾回收
1|7clone()方法
-
创建并返回此对象的拷贝
-
clone()
是浅拷贝,对象内属性引用的对象只会拷贝引用地址,而不会将引用的对象重新分配内存,相对应的深拷贝则会连引用的对象也重新创建 -
由于 Object 本身没有实现 Cloneable 接口,所以不重写 clone 方法并且进行调用的话会发生 CloneNotSupportedException 异常
-
示例:
输出
__EOF__

本文作者:userName
本文链接:https://www.cnblogs.com/dt746294093/p/14659146.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/dt746294093/p/14659146.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署