Object 類有哪些方法?

2022-05-15 11:38:17 字數 1394 閱讀 3830

equals:檢測物件是否相等,預設使用==比較物件引用,可以重寫 equals 方法自定義比較規則。equals 方法規範:自反性、對稱性、傳遞性、一致性、對於任何非空引用 x,x.equals(null)返回 false。

hashcode:雜湊碼是由物件匯出的乙個整型值,沒有規律,每個物件都有預設雜湊碼,值由物件儲存位址得出。字串雜湊碼由內容匯出,值可能相同。為了在集合中正確使用,一般需要同時重寫 equals 和 hashcode,要求 equals 相同 hashcode 必須相同,hashcode 相同 equals 未必相同,因此 hashcode 是物件相等的必要不充分條件。

tostring:列印物件時預設的方法,如果沒有重寫列印的是表示物件值的乙個字串。

clone:clone 方法宣告為 protected,類只能通過該方法轉殖它自己的物件,如果希望其他類也能呼叫該方法必須定義該方法為 public。如果乙個物件的類沒有實現 cloneable 介面,該物件呼叫 clone 方***丟擲乙個 clonenotsupport 異常。預設的 clone 方法是淺拷貝,一般重寫 clone 方法需要實現 cloneable 介面並指定訪問修飾符為 public。

使用方法:

public

class user implements

cloneable

private

string uid;

private

string uname;

}public

static

void main(string args) throws

clonenotsupportedexception

finalize:確定乙個物件死亡至少要經過兩次標記,如果物件在可達性分析後發現沒有與 gc roots 連線的引用鏈會被第一次標記,隨後進行一次篩選,條件是物件是否有必要執行 finalize 方法。假如物件沒有重寫該方法或方法已被虛擬機器呼叫,都視為沒有必要執行。如果有必要執行,物件會被放置在 f-queue 佇列,由一條低排程優先順序的 finalizer 執行緒去執行。虛擬機會觸發該方法但不保證會結束,這是為了防止某個物件的 finalize 方法執行緩慢或發生死迴圈。只要物件在 finalize 方法中重新與引用鏈上的物件建立關聯就會在第二次標記時被移出**集合。由於執行代價高昂且無法保證呼叫順序,在 jdk 9 被標記為過時方法,並不適合釋放資源。

getclass:返回包含物件資訊的類物件。

wait / notify / notifyall:阻塞或喚醒持有該物件鎖的執行緒。

Object類有哪些方法

object是所有類的父類,任何類都預設繼承object。object類到底實現了哪些方法?1 clone方法 保護方法,實現物件的淺複製,只有實現了cloneable介面才可以呼叫該方法,否則丟擲clonenotsupportedexception異常。2 getclass方法 final方法,獲...

Object類有哪些公用方法?

object是所有類的父類,任何類都預設繼承object。clone 保護方法,實現物件的淺複製,只有實現了cloneable介面才可以呼叫該方法,否則丟擲clonenotsupportedexception異常 equals 在object中與 是一樣的,子類一般需要重寫該方法 hashcode ...

Object類有哪些公用方法?

object是所有類的父類,任何類都預設繼承object。clone 保護方法,實現物件的淺複製,只有實現了cloneable介面才可以呼叫該方法,否則丟擲clonenotsupportedexception異常 equals 在object中與 是一樣的,子類一般需要重寫該方法 hashcode ...