Object有哪些公用方法

首先,object 是全部類的父類,全部類默認繼承 object 類。spa

1. clone 方法,是 object 類的 protect 方法。實現了對象的淺拷貝。有兩個須要注意,第一點是若是不顯式去重寫 clone 方法。其餘類沒法直接調用該類實例的 clone 方法。第二點是,若是不實現 cloneable 接口,則會拋出 clonenotsupportedException 異常。線程

2. equals 方法,在 object 類中與 == 相同,子類通常須要重寫該方法。code

3. hashcode 方法,用於 hash 查找,重寫了 equals 方法通常也要重寫 hashcode 方法。hashcode 返回散列值,equals 返回引用對象值是否相等。值相等的對象,散列值必定相等;散列值相等的對象,值不必定相等。在覆蓋 equals 方法中,也須要覆蓋 hashcode 方法,保證等價的兩個對象,值也相等。對象

4. getclass 方法,final 方法,得到運行時類型。繼承

5. wait 方法,若是當前線程擁有某個對象,而且釋放所持有的對象的 lock。wait 方法會一直等待,直到得到鎖 or 被中斷。wait(time)設定一個時間間隔,規定時間內沒有得到鎖就返回。(wait和sleep的區別是,wait釋放了鎖,sleep仍然持有鎖)接口

 

調用了該方法後,線程會進入睡眠狀態,直到:字符串

                1. 其餘線程調用了該對象的 notify / notifyall 方法。get

                2.其餘線程調用了 interrupt 打斷該線程,拋出一個 InterruptedException 異常。hash

                3. 時間間隔到了。it

                4. 該線程能夠被被調度了。

6. toString 方法,轉換成字符串,通常子類都有重寫,若是不重寫,則打印句柄。

7. finalize();

 

finalize方法是一個protected方法,Object類的默認實現是不進行任何操做。

該方法的做用是實例被垃圾回收器回收的時候觸發的操做,就比如 「死前的最後一波掙扎」。

 

咱們發現Object類中finalize方法被定義成一個空方法。

相關文章
相關標籤/搜索