運算符與流程控制
| 對比項 | 短路運算符 | 非短路運算符 |
&& vs & | 左側 false 直接結束,不執行右側 | 無論左側結果,均執行右側 |
|| vs | | 左側 true 直接結束,不執行右側 | 無論左側結果,均執行右側 |
短路特性常用於空指針防護:if (obj != null && obj.method())
對象比較
==:基本類型比值,引用類型比地址
equals():Object 默認比地址;String、包裝類重寫比內容
equalsIgnoreCase():忽略大小寫比較字符串
異常體系
- Error:JVM/硬件級故障(
OutOfMemoryError、StackOverflowError),不可捕獲恢復
- Exception:程序邏輯可預期/處理的異常
- 受檢異常:編譯期強制處理(
IOException、SQLException)
- 非受檢異常:RuntimeException 及子類(
NullPointerException、IllegalArgumentException)
構造方法 vs 普通方法
| 維度 | 構造方法 | 普通方法 |
| 返回值 | 無(連 void 都沒有) | 必須聲明返回類型 |
| 方法名 | 與類名相同 | 任意合法標識符 |
| 調用方式 | new ClassName(),JVM 自動調用,一次 | 對象.方法名(),可重複調用 |
| 作用 | 初始化對象狀態 | 描述對象行為 |
字符串處理類
| 特性 | StringBuffer | StringBuilder |
| 線程安全 | 同步方法,安全 | 非同步,不安全 |
| 性能 | 較低 | 較高(單線程首選) |
| 引入版本 | JDK 1.0 | JDK 1.5 |
集合框架三大接口特徵
| 接口 | 有序性 | 重複性 | 結構 |
| List | 有序(插入序) | 允許重複 | 單列 |
| Set | 無序(HashSet)/ 有序 | 不允許重複 | 單列 |
| Map | 無序/有序 | Key 唯一,Value 可重複 | 雙列 |
主流 List 實現對比
| 實現 | 底層結構 | 增刪性能 | 查詢性能 | 線程安全 | 擴容機制 |
| ArrayList | Object[] | 慢(需移位/擴容) | 快(隨機訪問 O(1)) | 非同步 | 1.5 倍 |
| LinkedList | 雙向鏈表 | 快(僅改指針) | 慢(順序遍歷 O(n)) | 非同步 | 無容量限制 |
| Vector | Object[] | 慢 | 快 | 同步(性能差) | 2 倍 |
數組 vs ArrayList
- 數組:固定長度、可存基本類型與對象、無泛型
- ArrayList:動態擴容、僅存對象(自動裝箱)、支援泛型
變量作用域與生命周期
| 維度 | 成員變量 | 局部變量 |
| 定義位置 | 類中、方法外 | 方法/代碼塊內 |
| 生命周期 | 隨對象創建/銷毀 | 隨方法調用/結束 |
| 默認值 | 有(0/false/null 等) | 無,必須顯式初始化 |
| 存儲區域 | 堆(對象內部) | 棧(幀中) |