Object类方法

70 阅读2分钟

Object类:所有类的⽗类

提供了11个方法给所有的类

/** 
* native ⽅法,⽤于返回当前运⾏时对象的 Class 对象,使⽤了 final 关键字修饰,故不允许⼦类重写。 
*/ 
public final native Class getClass() 

/** 
* native ⽅法,⽤于返回对象的哈希码,主要使⽤在哈希表中,⽐如 JDK 中的HashMap。 */ 
public native int hashCode() 

/** 
* naitive ⽅法,⽤于创建并返回当前对象的⼀份拷⻉。 
*/ 
protected native Object clone() throws CloneNotSupportedException

/** 
* ⽤于比较2个对象的内存地址是否相等,String 类对该⽅法进⾏了重写以⽤于比较字符串的值是否相等。 
*/ 
public boolean equals(Object obj)

/** 
* 返回类的名字实例的哈希码的 16 进制的字符串。建议 Object 所有的⼦类都重写这个⽅法。 
*/ 
public String toString() 

/** 
* native ⽅法,并且不能重写。唤醒⼀个在此对象监视器上等待的线程(监视器相当于就是锁的概念)。 如果有多个线程在等待只会任意唤醒⼀个。 
*/ 
public final native void notify() 

/** 
* native ⽅法,并且不能重写。跟 notify ⼀样,唯⼀的区别就是会唤醒在此对象监视器上等待的所有 线程,⽽不是⼀个线程。 
*/ 
public final native void notifyAll()

/**
* native⽅法,并且不能重写。暂停线程的执⾏。注意:sleep ⽅法没有释放锁,⽽ wait ⽅法释放了 锁 ,timeout 是等待时间。 
*/ 
public final native void wait(long timeout) throws InterruptedException 

/** 
* 多了 nanos 参数,这个参数表示额外时间(以毫微秒为单位,范围是 0-999999)。 所以超时的时间 还需要加上 nanos 毫秒。。 
*/ 
public final void wait(long timeout, int nanos) throws InterruptedException

/** 
* 跟之前的2个wait⽅法⼀样,只不过该⽅法⼀直等待,没有超时时间这个概念 
*/ 
public final void wait() throws InterruptedException 

/** 
* 实例被垃圾回收器回收的时候触发的操作 
*/ 
protected void finalize() throws Throwable {}

三个 wait() 等待,两个 notify() 唤醒,一个 finalize() 回收,一个 getClass() 获取运行对象,一个 hashCode() 返回hashCode,一个 clone() 复制,一个 equals 比较,一个 toString() 返回字符串。