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

深入解析 Java.lang 包:核心類別與常用方法詳解

     編輯:Java 相關知識

JDK API 包結構概覽

在整個 JDK API 中,約包含 1,200 個包。從包名的第一個部分來看,主要分為三大類:java、javax 和 org。其中以 java 開頭的為 JDK 基礎語言包,javax 開頭的為擴展包(x 代表 extend),而 org 開頭的則是第三方組織提供的功能包。此外,還有一些以 com.sun 開頭的包,這是 Sun 公司提供的內部功能包,因版本變動大且不具兼容性,未在標準 JDK API 文檔中公開。

java.lang 包簡介

java.lang 是 Java 基礎語言包(lang 為 language 縮寫),包含 Java 編程所需的基本功能類別、介面等,是進行 Java 程式設計的基石。由於使用頻率極高,Java 語言預設會自動引入此包,無需額外 import。

核心類別詳細解析

Object 類別——Java 繼承體系的根

Object 類別是 Java 語言的「靈魂」。除了 Object 本身,所有類別都是其子類別,即使不顯式寫繼承,系統也會自動繼承。這構成了 Java 單根繼承體系的唯一根節點,連陣列也實作了 Object 的方法。

正是這種單根繼承體系,讓 Java 能輕易實現多線程控制等複雜特性,也方便對整個語言體系進行更新維護。熟悉 Object 常用方法是每位程式設計師的必修課。

1. equals 方法:判斷物件內容是否相同

Object 中的預設實作極簡單:

public boolean equals(Object obj) {
    return (this == obj);
}

這僅比較參考位址。實務上若需比較物件內容,必須覆寫 equals 方法。以下是標準覆寫範例:

public class MyEquals {
    String name;
    int n;

    @Override
    public boolean equals(Object obj) {
        if (obj == this) return true;
        if (!(obj instanceof MyEquals)) return false;
        MyEquals m = (MyEquals) obj;
        if (!name.equals(m.name)) return false;
        if (n != m.n) return false;
        return true;
    }
}

關鍵步驟:先判斷是否為同一物件,再用 instanceof 檢查型別,最後逐一比較屬性值。

2. finalize 方法:物件釋放前的清理

finalize 與建構子功能相反,在 JVM 回收物件記憶體前自動調用,類似 C++ 的解構函數。若物件釋放時需執行特定操作(如關閉資源),可覆寫此方法。

3. hashCode 方法:取得雜湊碼

回傳一個整數雜湊碼,主要用於集合框架快速判斷物件是否不同。規則:內容相同的物件 hashCode 必須相同;內容不同的物件 hashCode 可能相同(發生碰撞)。自訂類別若要存入集合,覆寫此法可提升效能。

4. toString 方法:物件的字串表達

輸出物件時系統自動調用。Object 預設回傳 類別名@雜湊碼十六進位。為讓輸出更易讀,建議在自訂類別中覆寫此方法,格式化輸出內容。

其他常用方法

  • clone():建立內容完全相同、擁有獨立記憶體空間的新物件。
  • getClass():取得物件的運行時類別,反射技術的基礎。
  • wait()、notify()、notifyAll():多線程協作核心方法,後續章節詳述。

Math 類別:數學運算工具箱

Math 類別集中了常用數學常數與方法,皆為 static 靜態成員,呼叫極為方便。範例:

public class MathDemo {
    public static void main(String[] args) {
        int m = -10;
        int n = Math.abs(m);
        System.out.println("絕對值是:" + n);
    }
}

更多方法(如 sqrt、pow、random 等)請參閱 JDK API 文檔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved