首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java SE 基礎:Object 類 toString() 與 反射機制深度解析

     編輯:Java 綜合教學

Java SE 基礎:Object 類 toString() 與 反射機制深度解析

每個 Java 對象在內存中都有一個地址哈希值(十六進制)。理解 Object 類的核心方法對掌握 Java 基礎至關重要。

核心方法解析

  • hashCode():返回對象的哈希值(十進制)
  • Integer.toHexString():將十進制轉為十六進制字符串
  • toString():默認返回 類名@哈希值 格式(如 ObjectDemo@26f04d94)
  • getClass():獲取運行時類對象 (Class),是反射的入口
  • Class.getName():獲取類的全限定名

最佳實踐:通常應重寫 toString() 方法,輸出有業務意義的對象狀態信息,而非默認的內存地址。

反射機制原理演示

以下代碼展示了 toString() 內部實現原理——通過反射獲取類名與哈希值:

public class ObjectDemo {
    public static void main(String[] args) {
        ObjectDemo od = new ObjectDemo();
        
        // 默認 toString() 輸出
        System.out.println(od.toString()); // ObjectDemo@26f04d94
        
        // 手動拆解:哈希值轉十六進制
        System.out.println(Integer.toHexString(od.hashCode())); // 26f04d94
        
        // 反射方式重現 toString() 邏輯
        Class c = od.getClass();
        System.out.println(c.getName() + "@" + Integer.toHexString(od.hashCode()));
        // 輸出:ObjectDemo@26f04d94
    }
}

運行結果

Object toString 反射演示結果

關鍵總結

  1. 默認 toString() 格式:getClass().getName() + '@' + Integer.toHexString(hashCode())
  2. 反射 (Class 對象) 是框架開發、動態代理、註解處理的基石
  3. 實際開發中,請務必為實體類重寫 toString()、equals()、hashCode()
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved