.class 位元碼,由 JVM 解釋執行。static 關鍵字含義?能否覆寫 private 或 static 方法?類名.成員 訪問。static 方法屬於類,編譯期靜態綁定。子類定義同名靜態方法稱為「隱藏」,非覆寫。Thread 類Runnable 介面ExecutorService 線程池框架推薦實現 Runnable / 使用線程池:
Thread)。Collection:元素集合根介面。Set:不重複元素集合(HashSet, TreeSet)。List:有序、可重複(ArrayList, LinkedList)。Map:鍵值對映射,鍵唯一(HashMap, TreeMap)。| 操作 | 有序陣列 | 無序陣列 |
|---|---|---|
| 查找 | O(log n) 二分查找 | O(n) 線性掃描 |
| 插入 | O(n) 需移動元素 | O(1) 尾部直接加入 |
頻繁查找選有序,頻繁插入選無序。
ArrayList;需線程安全用 CopyOnWriteArrayList 或 Collections.synchronizedList。new ArrayList<>(100)),減少擴容開銷。ClassCastException、提升可讀性。String, Integer 等)作為 Map Key,免去自寫 hashCode/equals。List<String> list = new ArrayList<>();Collections.emptyList() 或長度 0 陣列,勿返回 null。Comparator 排序。null 值(無自然順序)。ArrayList 隨機存取 O(1),插入刪除 O(n)。LinkedList 頭尾操作 O(1),隨機存取 O(n)。HashMap 查找/插入 平均 O(1)。TreeMap (紅黑樹) 查找/插入 O(log n)。