1.所有对象的基类
Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
2.Object 的API
反射相关:
public final native Class<?> getClass();
//本地 final 方法 返回当前实例的实际类型的Class(描述类的类)的实
//对于如下代码,返回值就可以理解了;
//另外容易误解是因为错误的把super理解成扩展类对象所包含的基类的部分(这样的理解是组合关系不是扩展关系)
//因为扩展类对象和基类对象没有任何关系,是独立的;具体参看http://www.jianshu.com/p/e94c9e77eec5这个文章来矫正
super.getClass().getName()
比较相关:
public boolean equals(Object obj) {
return (this == obj);
}//如果扩展类没有重写本方法,则默认的比较的是地址;String 和基本类型包装类均进行了重写,比较的是内容。
多线程同步相关:
public final native void notify();//当前线程(持有本对象的锁)随机的激活阻塞在欲获取本对象的锁的线程队列区中的一个线程机型执行。
public final native void notifyAll();//激活全部
public final native void wait(long timeout) ;//持有本对象锁的线程进入阻塞状态timeout 个毫秒
标识相关:
public native int hashCode();
//返回一个对象的哈希值,
垃圾回收:
protected void finalize() ;//JVM保证在对象被回收时执行的方法,一般由Java代码生成的对象不用重写,但是由其他语言生成的对象就需要重写(这些对象可能不满足GC的要求)