JDK源码解读-Object

JDK 的 Object 类除了少数几个重载方法外基本都是 NDK 方法。由于刚开始阅读源码,就不深入阅读native 方法的 C++部分代码了。后面再次重读时再考虑是否读吧。这里就几个重载的方法进行整理一下。
class-method

  1. Object 类首先通过registerNatives()方法进行加载本地方法,使的本地方法可以有效执行,即加载 C++或汇编这些函数方法。

  2. 原生的 equals方法直接判断传递进去的类是否与当前的类地址相同,如果相同,则表示是相同的类,否则为不同的类。这个类可以进行重写,从而可以通过判断类的内容是否相同来判断是否同一个类(当然真正相同的类肯定引用的地址是相同的,但是很多业务场景下,要求的不是相同的类,而是类中的内容相同,这两者有着本质的区别)

  3. toString()方法返回的是类名@类的十六进制哈希值

  4. wait(long timeout, int nanos)方法重写了wait(long timeout)方法,并分两种情况进行处理
    1). 当毫秒时间等于 0 时,如果纳秒大于 0,则等待 1 毫秒
    2). 当毫秒时间大于 0 时,如果纳秒大于0.5毫秒即 500000,则等待多 1 毫秒。

  5. wait()则直接重写wait(long timeout)方法,并设置等待时间为 0.

  6. finalize()方法为垃圾回收方法,在当前类为一个空方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值