一、Object 類:所有類的根父類
| 方法 | 簽名 | 核心用途 | 重寫建議 |
| clone | protected Object clone() | 淺拷貝創建副本 | 實現 Cloneable,深拷貝需手動 |
| equals | boolean equals(Object obj) | 邏輯相等性判斷 | 必須滿足自反/對稱/傳遞/一致/非空 |
| finalize | protected void finalize() | GC 前清理(已棄用) | 不推薦使用,用 try-with-resources/Cleaner |
| getClass | Class<?> getClass() | 獲取運行時類對象 | final,不可重寫 |
| hashCode | int hashCode() | 哈希碼,配合 HashMap/Set | equals 相等必 hashCode 相等 |
| notify | void notify() | 喚醒單個等待線程 | 需在 synchronized 內調用 |
| notifyAll | void notifyAll() | 喚醒所有等待線程 | 需在 synchronized 內調用 |
| toString | String toString() | 對象字符串表示 | 強烈建議重寫,格式:ClassName[field=val,...] |
| wait | void wait()/wait(long)/wait(long,int) | 釋放鎖並等待 | 需在 synchronized 內調用 |
二、Iterator / ListIterator 遍歷器
| 介面 | 核心方法 | 特性 |
| Iterator | hasNext(), next(), remove() | 單向、通用、fail-fast |
| ListIterator | hasNext/next/nextIndex, hasPrevious/previous/previousIndex, set/add | 雙向、List 專用、可修改 |
三、Collection 接口通用操作
// 增
boolean add(E e)
boolean addAll(Collection extends E> c)
// 刪
void clear()
boolean remove(Object o)
boolean removeAll(Collection> c)
boolean retainAll(Collection> c) // 保留交集
// 查
boolean contains(Object o)
boolean containsAll(Collection> c)
boolean isEmpty()
int size()
Iterator iterator()
Object[] toArray()
<T> T[] toArray(T[] a)
// 判等
boolean equals(Object o) // 集合內容相等
int hashCode()
四、Map 接口核心操作
| 分類 | 方法 | 說明 |
| 查詢 | V get(Object key) | 獲取值,無則 null |
| V getOrDefault(Object key, V defaultValue) | JDK 8+,無則返回默認值 |
| boolean containsKey(Object key) | 是否包含鍵 |
| boolean containsValue(Object value) | 是否包含值(O(n)) |
| 修改 | V put(K key, V value) | 放入/覆蓋,返回舊值 |
| void putAll(Map extends K, ? extends V> m) | 批量放入 |
| V remove(Object key) | 刪除鍵值對 |
| V putIfAbsent(K key, V value) | JDK 8+,無則放入 |
| V computeIfAbsent(K key, Function) | JDK 8+,無則計算放入 |
| V merge(K key, V value, BiFunction) | JDK 8+,合併邏輯 |
| 視圖 | Set<K> keySet() | 鍵集合視圖 |
| Collection<V> values() | 值集合視圖 |
| Set<Entry<K,V>> entrySet() | 鍵值對視圖(最高效遍歷) |
| void clear() | 清空 |
| int size() | 鍵值對數量 |
| boolean isEmpty() | 是否為空 |
五、String 類:final、不可變、字符序列
查找與判斷
int length()
char charAt(int index)
int indexOf(String/char) // 首次出現
int lastIndexOf(String/char) // 最後出現
boolean startsWith(String prefix)
boolean endsWith(String suffix)
boolean contains(CharSequence s) // JDK 8+
boolean equals(Object o) // 區分大小寫
boolean equalsIgnoreCase(String o)
int compareTo(String o) // 字典序比較
int compareToIgnoreCase(String o)
提取與分割
String substring(int begin) // 到結尾
String substring(int begin, int end) // [begin, end)
String[] split(String regex) // 正則分割
String[] split(String regex, int limit) // 限制分割數
大小寫與修剪
String toUpperCase() / toLowerCase()
String trim() // 去首尾空白
String strip() / stripLeading() / stripTrailing() // JDK 11+, Unicode 感知
替換與連接
String replace(char old, char new) // 字符替換
String replace(CharSequence t, CharSequence r) // 序列替換
String replaceAll(String regex, String repl) // 正則替換
String replaceFirst(String regex, String repl) // 首次正則替換
static String join(CharSequence delim, CharSequence... elements) // JDK 8+
static String join(CharSequence delim, Iterable) // JDK 8+
轉換與編碼
byte[] getBytes() / getBytes(Charset charset)
byte[] getBytes(String charsetName)
char[] toCharArray()
static String valueOf(基本類型/Object) // null 安全
static String copyValueOf(char[] data)
格式化與解析
static String format(String fmt, Object... args) // printf 風格
// 示例:String.format("用戶: %s, 年齡: %d", name, age)
六、Arrays / Collections 工具類精選
| 類 | 高頻方法 |
| Arrays | sort, binarySearch, copyOf, copyOfRange, fill, equals, deepEquals, toString, deepToString, asList, stream, parallelSort, setAll |
| Collections | sort, reverse, shuffle, swap, fill, copy, min, max, frequency, disjoint, rotate, binarySearch, indexOfSubList, lastIndexOfSubList, synchronizedList/Map/Set, unmodifiableList/Map/Set, emptyList/Map/Set, singletonList/Map |
七、常見陷阱提醒
String s = "a" + "b"; 編譯期優化為 "ab";String s = a + b; 運行期 StringBuilder
substring JDK 7+ 不再共享底層 char[],避免內存洩漏
Map.get(key) 返回 null 可能是「無鍵」或「值為 null」,用 containsKey 或 getOrDefault 區分
Collections.unmodifiableList 返回視圖,原列表修改仍影響視圖,非真正不可變
Arrays.asList 返回固定長度列表,不支持 add/remove,底層數組修改影響列表
這份速查手冊涵蓋 Java 核心類庫 90%+ 高頻 API。建議:常用刻記、生僻查閱、原理深究。配合 IDE 智能提示、源碼閱讀(Ctrl+Click)、Javadoc 官方文檔,構建肌肉記憶與深度理解雙重保障。