Object是全部类的基类,属于java.lang包。java
只有编译器提供的默认构造方法。微信
Object类中没有成员字段。多线程
Object类一共12个方法。this
按照访问等级分:spa
按照是否为final分:线程
按照是否为native分:3d
private static native void registerNatives();
static {
registerNatives();
}
复制代码
在初始化调用static代码块时调用,用于注册Object类中的静态方法。code
public final native Class<?> getClass();
复制代码
返回类对象的Class实例,synchronized静态代码块时锁定的正是Class实例对象。cdn
public native int hashCode();
public boolean equals(Object obj) {
return (this == obj);
}
复制代码
hashCode()返回一个带符号int,返回一个对象实例的hashCode,其值多是对象的存储地址;equals方法用来判断两个对象是否相等。对象
Java规范中对hashCode、equals方法有以下规范:
重写equals(Object obj)方法时必须同时重写hashCode()方法
protected native Object clone() throws CloneNotSupportedException;
复制代码
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
复制代码
默认实现为Class名+"@"+十六进制的hashCode
public final native void notify();
public final native void notifyAll();
public final native void wait(long timeout) throws InterruptedException;
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);
}
public final void wait() throws InterruptedException {
wait(0);
}
复制代码
protected void finalize() throws Throwable { }
复制代码
在GC回收对象实例时会被调用,因GC是不肯定且随机的,没法肯定此方法的执行时间(若是内存充足,GC永远都不会发生则finalize()方法一直都不会被调用)。
欢迎扫码关注我微信公众号:magicTan。