Object有哪些公用方法

首先,object 是所有类的父类,所有类默认继承 object 类。

1. clone 方法,是 object 类的 protect 方法。实现了对象的浅拷贝。有两个需要注意,第一点是如果不显式去重写 clone 方法。其他类无法直接调用该类实例的 clone 方法。第二点是,如果不实现 cloneable 接口,则会抛出 clonenotsupportedException 异常。

2. equals 方法,在 object 类中与 == 相同,子类一般需要重写该方法。

3. hashcode 方法,用于 hash 查找,重写了 equals 方法一般也要重写 hashcode 方法。hashcode 返回散列值,equals 返回引用对象值是否相等。值相等的对象,散列值一定相等;散列值相等的对象,值不一定相等。在覆盖 equals 方法中,也需要覆盖 hashcode 方法,保证等价的两个对象,值也相等。

4. getclass 方法,final 方法,获得运行时类型。

5. wait 方法,如果当前线程拥有某个对象,并且释放所持有的对象的 lock。wait 方法会一直等待,直到获得锁 or 被中断。wait(time)设定一个时间间隔,规定时间内没有获得锁就返回。(wait和sleep的区别是,wait释放了锁,sleep仍然持有锁)

 

调用了该方法后,线程会进入睡眠状态,直到:

                1. 其他线程调用了该对象的 notify / notifyall 方法。

                2.其他线程调用了 interrupt 打断该线程,抛出一个 InterruptedException 异常。

                3. 时间间隔到了。

                4. 该线程可以被被调度了。

6. toString 方法,转换成字符串,一般子类都有重写,如果不重写,则打印句柄。

7. finalize();

 

finalize方法是一个protected方法,Object类的默认实现是不进行任何操作。

该方法的作用是实例被垃圾回收器回收的时候触发的操作,就好比 “死前的最后一波挣扎”。

 

我们发现Object类中finalize方法被定义成一个空方法。

 

 

转载于:https://my.oschina.net/u/3973793/blog/3096450

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值