本文彙整 Java 面試核心知識點,涵蓋基礎語法、集合框架、多線程併發、JVM 記憶體模型、Spring IOC/AOP、資料庫優化、設計模式等模組,採「問題-核心答案-加分點」結構,助你高效備戰。
| 題目 | 核心答案 | 加分點 |
|---|---|---|
| static vs 實例變數 | static 隸屬類,類載入時分配記憶體(方法區),全域共享;實例變數隸屬對象,new 時分配(堆),各對象獨立 | static 區塊初始化順序、final static 常量編譯期常量池 |
| int vs Integer | int 基本型別,預設 0,堆疊儲存;Integer 包裝類,預設 null,堆儲存,支援泛型、工具方法 | 自動裝箱/拆箱緩存範圍 -128~127、Integer 物件比較陷阱 |
| 訪問修飾符 | public>protected>default>private;protected 同包+子類可見 | 介面成員隱含 public static final / public abstract |
| Overload vs Override | Overload:同類同名不同參數列表(編譯期綁定);Override:子類覆寫父類同名同參數(執行期綁定) | Override 限制:返回型別協變、拋出異常子集、訪問權限不降低 |
| String 比較 | equals 比內容,== 比引用;常量池機制導致字面量 == 為 true,new 物件 == 為 false | StringBuilder/Buffer 區別、substring/jdk7+ 共享 char[] 變更 |
| 基本型別 vs 包裝類 | 值傳遞 vs 引用傳遞;堆疊 vs 堆;速度快 vs 功能豐富(轉換、工具方法) | 泛型只能用包裝類、集合存儲包裝類 |
ArrayList(陣列,查快增刪慢)、LinkedList(雙向鏈表,增刪快)、Vector(同步,棄用)。HashSet(HashMap 底層,無序唯一)、LinkedHashSet(保持插入序)、TreeSet(紅黑樹,有序)。HashMap(JDK8 陣列+鏈表/紅黑樹,非同步)、ConcurrentHashMap(分段鎖/CAS,高併發)、TreeMap(有序)、Hashtable(同步,棄用)。| 題目 | 核心答案 |
|---|---|
| 實現線程方式 | 繼承 Thread、實作 Runnable、Callable+FutureTask、線程池 ExecutorService |
| sleep vs wait | sleep:Thread 靜態方法,不釋放鎖,時間到自動恢復;wait:Object 實例方法,釋放鎖,需 notify/notifyAll 喚醒 |
| synchronized 鎖對象 | 實例方法鎖 this、靜態方法鎖 Class 物件、代碼塊鎖指定對象 |
| volatile 關鍵字 | 保證可見性、禁止指令重排、不保證原子性;適用單寫多讀場景 |
| 線程池核心參數 | coreSize、maxSize、keepAliveTime、workQueue、ThreadFactory、RejectedExecutionHandler |
| AQS 原理 | AbstractQueuedSynchronizer,state 狀態+CLH 隊列,獨享/共享模式,支援 ReentrantLock、CountDownLatch、Semaphore 等 |
| 概念 | 核心解釋 |
|---|---|
| IOC(控制反轉) | 對象創建與依賴管理交給容器;依賴注入三種:建構子注入、Setter 注入、介面注入 |
| AOP(面向切面) | 將橫切關注點(日誌、事務、權限)封裝為切面,透過動態代理(JDK/CGLIB)織入目標方法 |
| 代理模式 | JDK 動態代理需介面,CGLIB 繼承目標類(final 類/方法不可代理) |
| 事務傳播行為 | REQUIRED(預設)、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED |
| 類型 | 模式(常用標星) |
|---|---|
| 創建型 | ★Singleton、★Factory Method、★Abstract Factory、Builder、Prototype |
| 結構型 | ★Adapter、★Decorator、★Proxy、Facade、Bridge、Composite、Flyweight |
| 行為型 | ★Observer、★Strategy、★Template Method、Command、Iterator、State、Chain of Responsibility、Mediator、Memento、Visitor、Interpreter |