Java Object方法解析

本文详细介绍了Java中Object类的方法,包括clone方法的深拷贝特性、equals方法的默认比较行为、finalize方法的工作流程以及hashCode、notify系列方法的作用。此外还探讨了toString方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法摘要
protected  Objectclone() 

          创建并返回此对象的一个副本。

如果对象的类不支持 Cloneable 接口,则重写 clone 方法的子类也会抛出此异常,以指示无法复制某个实例。

对 对象进行深拷贝,但不是彻底拷贝,例如:对象的属性类进行浅拷贝;如果在实现Cloneable 接口时也对属性类也进行拷贝,则属性类也为深拷贝

 booleanequals(Object obj) 

          指示其他某个对象是否与此对象“相等”。

默认是对象的地址是否相同。如果重新,要相应重新hashcode方法

protected  voidfinalize() 

          当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

首先,大致描述一下finalize流程:当对象变成(GC Roots)不可达时,GC会判断该对象是否覆盖了finalize方法,若未覆盖,则直接将其回收。否则,若对象未执行过finalize方法,将其放入F-Queue队列,由一低优先级线程执行该队列中对象的finalize方法。执行finalize方法完毕后,GC会再次判断该对象是否可达,若不可达,则进行回收,否则,对象“复活”。

 Class<?>getClass() 
          返回此 Object 的运行时类。
 inthashCode() 
          返回该对象的哈希码值。
 voidnotify() 
          唤醒在此对象监视器上等待的单个线程。
 voidnotifyAll() 
          唤醒在此对象监视器上等待的所有线程。
 StringtoString() 
          返回该对象的字符串表示。
 voidwait() 
          在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。
 voidwait(long timeout) 
          在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。
 voidwait(long timeout, int nanos) 
          在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值