Java源代码阅读——Object类
一 概述
类
二 构造方法Object
是类层次结构的根类。每个类都使用object
作为超类。所有对象(包括数组)都实现这个类的方法。Object();
三 方法
(1)
PRivate static native void registerNatives(); static { registerNatives(); }本地方法,static表示该类再初始化时执行该代码块,完成本地注册。(2)
public final native Class<?> getClass();
本地方法,返回此
Object
的运行时类。(3)
public native int hashCode();
本地方法,针对不同的对象返回不同的整数,一般是通过将该对象的内部地址转换成一个整数来实现的。
(4)
public boolean equals(Object obj) { return (this == obj); }自反性,传递性,对称性,一致性,非空引用值x
,x.equals(null)
应返回false
。、(5)
protected native Object clone() throws CloneNotSupportedException;
本地方法,Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。
(6)
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }(7)public final native void notify();
本地方法,唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待,则会选择唤醒其中一个线程。选择是任意性的,并在对实现做出决定时发生。
(8)
public final native void notifyAll();
本地方法,唤醒在此对象监视器上等待的所有线程。线程通过调用其中一个
wait
方法,在对象的监视器上等待。(9)
public final native void wait(long timeout) throws InterruptedException;
在其他线程调用此对象的
notify()
方法或notifyAll()
方法,或者超过指定的时间量前,导致当前线程等待。另有其他两个重载形式。
(10)
protected void finalize() throws Throwable { }
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写
finalize
方法,以配置系统资源或执行其他清除。