Java基礎-學習筆記07

JuneFall發表於2024-07-23

07 Object類詳解

Object類詳解

object是所有類的超類,它擁有的方法,其他所有類的物件都會擁有,可以直接使用。

equals方法

  • == 和 equals的對比
    • == 是一個比較運算子:
      既可以判斷基本型別(判斷的是值是否相等);也可以判斷引用型別(判斷的是地址是否相等),當兩邊型別不相等時編譯不透過。
    • equals是object類的方法:
      只能用來判斷引用型別;
      預設判斷的是地址是否相等,子類中往往重寫該方法,用於判斷內容是否相等。比如Integer,String。

hashcode方法

返回該物件的雜湊碼值,支援此方法是為了提高雜湊表(例如 Java.util.Hashtable提供雜湊表)的效能。

  • 提高具有雜湊結構的容器的效率
  • 兩個引用,如果指向的是同一個物件,則雜湊值肯定是一樣的
  • 兩個引用,如果指向的是不同物件,則雜湊值等價是不一樣的(非絕對)
  • 雜湊值主要根據地址號來的,但不能將地址和雜湊值等價

toString方法

預設返回:全類名+@+雜湊值的十六進位制;子類往往重寫toString方法,用於返回物件的屬性資訊

  • 重寫 toString 方法,列印物件或拼接物件時,都會呼叫該物件的 toString形式
  • 當直接輸出一個物件時,toString方法會被預設的呼叫

Finalize方法

當垃圾回收器確定不存在對該物件的更多引用時,由物件的垃圾回收器呼叫該方法。
(實際開發中,幾乎不用。瞭解應付面試)

  • 當物件被回收時,系統自動呼叫該物件的finalize方法。子類可以重寫該方法,做一些釋放資源的操作(比如釋放資源:資料庫連線,或者開啟檔案...)
  • 什麼時候被回收:當某個物件沒有任何引用時,則jvm就認為這個物件是一個垃圾物件,就會使用垃圾回收機制來銷燬該物件,在銷燬該物件前,會先呼叫finalize方法
  • 垃圾回收機制的呼叫,是由系統來決定,也可以透過System.gc()主動觸發垃圾回收機制

相關文章