JDK 的 Object 类除了少数几个重载方法外基本都是 NDK 方法。由于刚开始阅读源码,就不深入阅读native 方法的 C++部分代码了。后面再次重读时再考虑是否读吧。这里就几个重载的方法进行整理一下。
-
Object 类首先通过
registerNatives()
方法进行加载本地方法,使的本地方法可以有效执行,即加载 C++或汇编这些函数方法。 -
原生的
equals
方法直接判断传递进去的类是否与当前的类地址相同,如果相同,则表示是相同的类,否则为不同的类。这个类可以进行重写,从而可以通过判断类的内容是否相同来判断是否同一个类(当然真正相同的类肯定引用的地址是相同的,但是很多业务场景下,要求的不是相同的类,而是类中的内容相同,这两者有着本质的区别) -
toString()
方法返回的是类名@类的十六进制哈希值
-
wait(long timeout, int nanos)
方法重写了wait(long timeout)
方法,并分两种情况进行处理
1). 当毫秒时间等于 0 时,如果纳秒大于 0,则等待 1 毫秒
2). 当毫秒时间大于 0 时,如果纳秒大于0.5毫秒即 500000,则等待多 1 毫秒。 -
wait()
则直接重写wait(long timeout)
方法,并设置等待时间为 0. -
finalize()
方法为垃圾回收方法,在当前类为一个空方法。