1. 程式人生 > >Object類中都有哪些方法?

Object類中都有哪些方法?

Object是所有類的父類,任何類都預設繼承Object。Object類都實現了哪些方法呢?

1.clone方法 保護方法,實現物件的淺複製,只有實現了Cloneable接口才可以呼叫該方法,否則丟擲CloneNotSupportedException異常。

2.getClass方法 final方法,獲得執行時型別。

3.toString方法 該方法用得比較多,一般子類都有覆蓋。

4.finalize方法 該方法用於釋放資源。因為無法確定該方法什麼時候被呼叫,很少使用。

5.equals方法 該方法是非常重要的一個方法。一般equals和==是不一樣的,但是在Object中兩者是一樣的。子類一般都要重寫這個方法。

6.hashCode方法 該方法用於雜湊查詢,重寫了equals方法一般都要重寫hashCode方法。這個方法在一些具有雜湊功能的Collection中用到。

一般必須滿足obj1.equals(obj2)==true。可以推出obj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就滿足equals。不過為了提高效率,應該儘量使上面兩個條件接近等價。

7.wait方法 wait方法就是使當前執行緒等待該物件的鎖,當前執行緒必須是該物件的擁有者,也就是具有該物件的鎖。wait()方法一直等待,直到獲得鎖或者被中斷。wait(long timeout)設定一個超時間隔,如果在規定時間內沒有獲得鎖就返回。

呼叫該方法後當前執行緒進入睡眠狀態,直到以下事件發生。

(1)其他執行緒呼叫了該物件的notify方法。

(2)其他執行緒呼叫了該物件的notifyAll方法。

(3)其他執行緒呼叫了interrupt中斷該執行緒。

(4)時間間隔到了。

此時該執行緒就可以被排程了,如果是被中斷的話就丟擲一個InterruptedException異常。

8.notify方法 該方法喚醒在該物件上等待的某個執行緒。

9.notifyAll方法 該方法喚醒在該物件上等待的所有執行緒。