Java中Object的方法

Java中Object的方法            

方法摘要
protected Object clone()
          創建並返回此對象的一個副本。
boolean equals(Object obj)
          指示某個其他對象是否與此對象“相等”。
protected void finalize()
          當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法。
Class<? extends Object> getClass()
          返回一個對象的運行時類。
int hashCode()
          返回該對象的哈希碼值。
void notify()
          喚醒在此對象監視器上等待的單個線程。
void notifyAll()
          喚醒在此對象監視器上等待的所有線程。
String toString()
          返回該對象的字符串表示。
void wait()
          導致當前的線程等待,直到其他線程調用此對象的 notify() 方法或 notifyAll() 方法。
void wait(long timeout)
          導致當前的線程等待,直到其他線程調用此對象的 notify() 方法或 notifyAll() 方法,或者超過指定的時間量。
void wait(long timeout, int nanos)
          導致當前的線程等待,直到其他線程調用此對象的 notify() 方法或 notifyAll() 方法,或者其他某個線程中斷當前線程,或者已超過某個實際時間量。
構造方法詳細信息
Object
public Object()
方法詳細信息
getClass
public final Class<? extends Object> getClass()
返回一個對象的運行時類。該 Class 對象是由所表示類的 static synchronized 方法鎖定的對象。
返回:
表示該對象的運行時類的 java.lang.Class 對象。此結果屬於類型 Class<? extends X>,其中 X 表示清除表達式中的靜態類型,該表達式調用 getClass。
--------------------------------------------------------------------------------
hashCode
public int hashCode()
返回該對象的哈希碼值。支持該方法是爲哈希表提供一些優點,例如,java.util.Hashtable 提供的哈希表。
hashCode 的常規協定是:
在 Java 應用程序執行期間,在同一對象上多次調用 hashCode 方法時,必須一致地返回相同的整數,前提是對象上 equals 比較中所用的信息沒有被修改。從某一應用程序的一次執行到同一應用程序的另一次執行,該整數無需保持一致。
如果根據 equals(Object) 方法,兩個對象是相等的,那麼在兩個對象中的每個對象上調用 hashCode 方法都必須生成相同的整數結果。
以下情況不 是必需的:如果根據 equals(java.lang.Object) 方法,兩個對象不相等,那麼在兩個對象中的任一對象上調用 hashCode 方法必定會生成不同的整數結果。但是,程序員應該知道,爲不相等的對象生成不同整數結果可以提高哈希表的性能。
實際上,由 Object 類定義的 hashCode 方法確實會針對不同的對象返回不同的整數。(這一般是通過將該對象的內部地址轉換成一個整數來實現的,但是 JavaTM 編程語言不需要這種實現技巧。)
返回:
此對象的一個哈希碼值。
另請參見:
equals(java.lang.Object), Hashtable
--------------------------------------------------------------------------------
equals
public boolean equals(Object obj)
指示某個其他對象是否與此對象“相等”。
equals 方法在非空對象引用上實現相等關係:
自反性:對於任何非空引用值 x,x.equals(x) 都應返回 true。
對稱性:對於任何非空引用值 x 和 y,當且僅當 y.equals(x) 返回 true 時,x.equals(y) 才應返回 true。
傳遞性:對於任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,並且 y.equals(z) 返回 true,那麼 x.equals(z) 應返回 true。
一致性:對於任何非空引用值 x 和 y,多次調用 x.equals(y) 始終返回 true 或始終返回 false,前提是對象上 equals 比較中所用的信息沒有被修改。
對於任何非空引用值 x,x.equals(null) 都應返回 false。
Object 類的 equals 方法實現對象上差別可能性最大的相等關係;即,對於任何非空引用值 x 和 y,當且僅當 x 和 y 引用同一個對象時,此方法才返回 true(x == y 具有值 true)。
注意:當此方法被重寫時,通常有必要重寫 hashCode 方法,以維護 hashCode 方法的常規協定,該協定聲明相等對象必須具有相等的哈希碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章