Jdk1.8
public class Object {}
Java是一门面向对象的语言,饱含抽象的特性,它的设计也是如此,万事万物都有根源,在java中以类为单元,类与类之间也有联系。
继承:Object为顶层父类,也可以叫做“上帝类”,是所有类的源头,如果一个类没有显式的继承某个类,那么它将默认继承自Object。
方法一览:
//在类被加载的时候进行一些必要的初始化工作
private static native void registerNatives();
//获取类在内存中的字节码对象
public final native Class<?> getClass();
//获取哈希code
public native int hashCode();
//类拷贝
protected native Object clone() throws CloneNotSupportedException;
//线程唤醒(单个)对应notifyAll()
public final native void notify();
//线程挂起
public final native void wait(long timeout) throws InterruptedException;
//比较
public boolean equals(Object obj);
//对象信息转字符串输出
public String toString()
//挂起时间+1
public final void wait(long timeout, int nanos) throws InterruptedException
//
public final void wait() throws InterruptedException
//对象被回收前调用,完成后被GC回收
protected void finalize() throws Throwable
主要大部分是本地native方法,
public final void wait(long timeout, int nanos) throws InterruptedException {
if (timeout < 0) {
throw new IllegalArgumentException("timeout value is negative");
}
if (nanos < 0 || nanos > 999999) {
throw new IllegalArgumentException(
"nanosecond timeout value out of range");
}
if (nanos > 0) {
timeout++;
}
wait(timeout);
}
这个wait方法不是很明白它存在的意义,明面上就是timeout+1,由于timeout可能为0,难道只是为了多拖延1ms?