Java源代码阅读——Object类

来源:互联网 发布:mac怎么下载wps office 编辑:程序博客网 时间:2024/06/01 18:14

一 概述

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);    }
自反性,传递性,对称性,一致性,非空引用值xx.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 方法,以配置系统资源或执行其他清除。





0 0
原创粉丝点击