API 文檔是 Java 開發者的「字典」與「地圖」。JDK 類庫超過 4000+ 類、數萬方法,沒人能全記。高效開發者不背誦,而是會查、會連、會舉一反三。本文系統梳理文檔結構、閱讀策略、工具鏈與避坑指南。
// 以 java.util.ArrayList 為例
Class java.util.ArrayList
java.lang.Object
java.util.AbstractCollection
java.util.AbstractList
java.util.ArrayList // 繼承鏈,點選可跳轉
All Implemented Interfaces: Serializable, Cloneable, Iterable, Collection, List, RandomAccess
// 實作介面,點選查看契約
// 欄位摘要(通常為 static final 常數)
// 建構子摘要
// 方法摘要(核心):修飾符、回傳型別、方法名、參數列表、拋出異常、簡短說明
// 方法詳細說明:完整語義、參數約束、回傳值含義、拋出條件、範例代碼、參考鏈接
Since: 1.2、See Also: Collections.sort。| 套件 | 核心職責 | 高頻類別 |
|---|---|---|
java.lang | 語言基礎,自動導入 | String, Math, Thread, Exception, System, Class, Enum |
java.util | 集合框架、工具類 | List, Map, Set, Queue, Collections, Arrays, Optional, Stream, Date/Calendar |
java.io | 輸入輸出流、檔案 | File, InputStream/OutputStream, Reader/Writer, Buffered*, Scanner |
java.nio | 非阻塞 IO、記憶體映射 | ByteBuffer, Channel, Selector, Path, Files, FileSystem |
java.net | 網絡程式設計 | URL, URI, HttpURLConnection, Socket, ServerSocket, InetAddress |
java.sql | JDBC 資料庫存取 | Connection, Statement, PreparedStatement, ResultSet, DataSource |
java.time | 現代日期時間 (Java 8+) | LocalDate, LocalTime, LocalDateTime, ZonedDateTime, Duration, Period |
java.util.concurrent | 併發工具包 | ExecutorService, Future, CompletableFuture, Lock, Semaphore, CountDownLatch, ConcurrentHashMap |
/**
* 計算兩點間歐氏距離。
* @param x1 第一點 X 座標
* @param y1 第一點 Y 座標
* @param x2 第二點 X 座標
* @param y2 第二點 Y 座標
* @return 距離值,若座標超出範圍拋出 {@link IllegalArgumentException}
* @see Math#hypot(double, double)
* @since 1.0
*/
public double distance(double x1, double y1, double x2, double y2) { ... }
Zeal (Linux/Windows)、Dash (macOS)、Velocity (跨平台) — 支援 Docset 格式,毫秒級搜尋。@Deprecated(since="9", forRemoval=true)、@Since 11。jdeprscan (JDK 9+) 掃描專案棄用 API 使用。針對核心框架(Collections、Concurrent、Streams、NIO),建議路徑:
API 文檔不是讀完的書,而是查問題的工具。建立「搜尋→契約→源碼→實驗」的閉環習慣,配合離線搜尋工具與 IDE 整合,讓文檔成為你最順手的武器。下一篇將實戰《如何閱讀開源專案源碼:從 Spring Boot 到 Netty 的架構閱讀法》。