首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 面試基礎常見題目集錦

     編輯:Java 相關知識

前言

整理高頻 Java 基礎面試題,涵蓋語言特性、集合、多線程、JVM、異常處理等核心知識點,附標準答案與解析,適合面試複習與知識查漏。

一、語言基礎

Q: main 方法若聲明為 private 會怎樣?
A: 編譯通過,運行時報錯 Main method not public。JVM 要求 public static void main(String[])。
Q: Java 參數傳遞是傳值還是傳引用?
A: 只支援傳值。基本型別傳值副本;引用型別傳引用副本(指向同一物件)。
Q: 重寫 equals 時為何必須重寫 hashCode?
A: 滿足 equals 相等則 hashCode 必相等的約定,否則在 HashMap/HashSet 中會導致找不到元素或重複存放。
Q: == 與 equals 差異?
A: == 比較引用地址;equals 比較內容(需類別重寫)。String、包裝類已重寫比較值。
Q: final、finally、finalize 差異?
A: final 修飾常量/不可繼承類/不可覆寫方法;finally 異常處理塊;finalize GC 前回調(已棄用)。

二、集合框架

Q: ArrayList vs LinkedList?
A: ArrayList 底層陣列,隨機存取 O(1),增刪 O(n);LinkedList 雙向鏈表,增刪 O(1),隨機存取 O(n)。
Q: HashMap 原理(JDK 1.8)?
A: 陣列 + 鏈表 + 紅黑樹。put 計算 hash 定位桶位,鏈表長度 > 8 且陣列長度 > 64 轉紅黑樹。擴容 2 倍,重新計算索引。
Q: HashSet 如何保證唯一?
A: 內部用 HashMap 實現,Key 為元素,Value 為固定 PRESENT。依賴 hashCode/equals。
Q: ConcurrentHashMap 線程安全機制?
A: JDK 1.7 分段鎖;JDK 1.8 CAS + synchronized 鎖頭節點,細粒度鎖 + 無鎖讀。

三、多線程與並發

Q: synchronized vs Lock?
A: synchronized 內建鎖,JVM 優化(偏向鎖、輕量級鎖、膨脹鎖),代碼簡潔;Lock API 豐富(可中斷、超時、公平、多條件),需手動釋放。
Q: volatile 作用?
A: 保證可見性(寫入立即刷主存、讀取從主存)、禁止指令重排序;不保證原子性。
Q: 線程池核心參數?
A: corePoolSize、maximumPoolSize、keepAliveTime、workQueue、ThreadFactory、RejectedExecutionHandler。
Q: 如何優雅停止線程?
A: volatile boolean stop 標誌 + interrupt() 打斷阻塞,在 run 中檢查標誌並處理 InterruptedException。

四、JVM 與記憶體

Q: JVM 記憶體結構?
A: 堆、虛擬機棧、本地方法棧、方法區(元空間)、程式計數器。堆為 GC 主戰場,分代(新生代/老年代)。
Q: 判斷對象可回收算法?
A: 可達性分析(GC Roots:棧引用、靜態屬性、常量、JNI 引用)。
Q: 常見 GC 收集器?
A: Serial、Parallel、CMS、G1、ZGC、Shenandoah。G1 區域化、可預測停頓;ZGC 亞毫秒級停頓。
Q: 雙親委派模型?
A: 類載入請求先委派父載入器,載入失敗再由子載入器載入。保證核心類安全、避免重複載入。可打破(Tomcat、熱部署)。

五、異常與反射

Q: Exception vs Error?
A: Exception 可捕獲處理(受檢/非受檢);Error 嚴重錯誤(OOM、StackOverflow),通常不捕獲。
Q: 反射用途與缺點?
A: 動態載入類、獲取結構、呼叫方法。缺點:效能低、破壞封裝、編譯期無法檢查、安全性風險。

六、新特性(Java 8+)

Q: Lambda 表達式與函數式介面?
A: 單一抽象方法介面(@FunctionalInterface),Lambda 為其實例。配合 Stream API 實現聲明式處理。
Q: Optional 解決什麼問題?
A: 避免 NullPointerException,強制調用者處理空值,提供 map/flatMap/filter/orElse 鏈式操作。
Q: Stream 並行流注意事項?
A: 適用 CPU 密集、無副作用、數據量大場景;避免共享狀態、阻塞操作、有序流並行破壞順序。

七、總結

面試不僅考記憶,更考理解深度與表達清晰度。建議針對每題:定義 → 原理 → 優缺點 → 實戰場景 → 避坑指南 結構化作答。持續關注 JDK 新版本特性(Records、Pattern Matching、Virtual Threads)保持競爭力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved