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

Java 面試高頻考點精華總結:基礎、集合、多線程、JVM、Spring、資料庫、設計模式

     編輯:Java 綜合教學

Java 面試高頻考點精華總結

本文彙整 Java 面試核心知識點,涵蓋基礎語法、集合框架、多線程併發、JVM 記憶體模型、Spring IOC/AOP、資料庫優化、設計模式等模組,採「問題-核心答案-加分點」結構,助你高效備戰。

一、基礎語法與核心類

題目核心答案加分點
static vs 實例變數static 隸屬類,類載入時分配記憶體(方法區),全域共享;實例變數隸屬對象,new 時分配(堆),各對象獨立static 區塊初始化順序、final static 常量編譯期常量池
int vs Integerint 基本型別,預設 0,堆疊儲存;Integer 包裝類,預設 null,堆儲存,支援泛型、工具方法自動裝箱/拆箱緩存範圍 -128~127、Integer 物件比較陷阱
訪問修飾符public>protected>default>private;protected 同包+子類可見介面成員隱含 public static final / public abstract
Overload vs OverrideOverload:同類同名不同參數列表(編譯期綁定);Override:子類覆寫父類同名同參數(執行期綁定)Override 限制:返回型別協變、拋出異常子集、訪問權限不降低
String 比較equals 比內容,== 比引用;常量池機制導致字面量 == 為 true,new 物件 == 為 falseStringBuilder/Buffer 區別、substring/jdk7+ 共享 char[] 變更
基本型別 vs 包裝類值傳遞 vs 引用傳遞;堆疊 vs 堆;速度快 vs 功能豐富(轉換、工具方法)泛型只能用包裝類、集合存儲包裝類

二、集合框架

  • List:ArrayList(陣列,查快增刪慢)、LinkedList(雙向鏈表,增刪快)、Vector(同步,棄用)。
  • Set:HashSet(HashMap 底層,無序唯一)、LinkedHashSet(保持插入序)、TreeSet(紅黑樹,有序)。
  • Map:HashMap(JDK8 陣列+鏈表/紅黑樹,非同步)、ConcurrentHashMap(分段鎖/CAS,高併發)、TreeMap(有序)、Hashtable(同步,棄用)。
  • 擴容機制:ArrayList 1.5 倍、HashMap 2 倍(負載因子 0.75)。

三、多線程與併發

四、JVM 記憶體與 GC

  • 運行時資料區:堆(對象實例)、虛擬機棧(棧幀)、本地方法棧、方法區(類元數據、常量、靜態變數,JDK8+ Metaspace)、程序計數器。
  • 對象創建:類載入檢查→分配記憶體(指針碰撸/空閒列表)→初始化零值→設置對象頭→執行 。
  • 判斷存活:可達性分析(GC Roots:棧引用、靜態屬性、常量、JNI 引用)。
  • GC 演算法:標記-清除、標記-整理、複製、分代收集(新生代:Serial/Parallel/ParNew/CMS/G1/ZGC)。
  • 類載入機制:載入→驗證→準備→解析→初始化→使用→卸載;雙親委派模型打破場景(SPI、熱部署)。

五、Spring IOC / AOP

題目核心答案
實現線程方式繼承 Thread、實作 Runnable、Callable+FutureTask、線程池 ExecutorService
sleep vs waitsleep:Thread 靜態方法,不釋放鎖,時間到自動恢復;wait:Object 實例方法,釋放鎖,需 notify/notifyAll 喚醒
synchronized 鎖對象實例方法鎖 this、靜態方法鎖 Class 物件、代碼塊鎖指定對象
volatile 關鍵字保證可見性、禁止指令重排、不保證原子性;適用單寫多讀場景
線程池核心參數coreSize、maxSize、keepAliveTime、workQueue、ThreadFactory、RejectedExecutionHandler
AQS 原理AbstractQueuedSynchronizer,state 狀態+CLH 隊列,獨享/共享模式,支援 ReentrantLock、CountDownLatch、Semaphore 等

六、資料庫與 SQL

  • 分頁:Oracle ROWNUM 子查詢、MySQL LIMIT offset, size、PostgreSQL OFFSET/FETCH。
  • Join 類型:Inner(交集)、Left/Right(主表全保留)、Full(並集)。
  • 索引原則:高選擇性、最左前綴、覆蓋索引、避免函數運算、小表不建索引。
  • 事務 ACID:原子性、一致性、隔離性、持久性;隔離級別:Read Uncommitted、Read Committed、Repeatable Read、Serializable。

七、WebService 與 SOA

  • WebService:跨平台/語言遠程調用,核心 WSDL(描述)、SOAP(訊息)、UDDI(註冊發現)。
  • SOA 特點:服務重用、鬆耦合、標準化介面、組合式應用。
  • Java 實現:JAX-WS(標準)、Apache CXF、Spring Web Services。

八、23 種設計模式分類速記

概念核心解釋
IOC(控制反轉)對象創建與依賴管理交給容器;依賴注入三種:建構子注入、Setter 注入、介面注入
AOP(面向切面)將橫切關注點(日誌、事務、權限)封裝為切面,透過動態代理(JDK/CGLIB)織入目標方法
代理模式JDK 動態代理需介面,CGLIB 繼承目標類(final 類/方法不可代理)
事務傳播行為REQUIRED(預設)、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED

工廠模式精髓:定義創建介面,由子類決定實例化哪個具體類,調用者僅依賴抽象產品介面。

九、面試加分技巧

  1. 畫圖解釋:JVM 記憶體模型、類載入雙親委派、HashMap 擴容樹化、線程池執行流程、Spring 事務傳播嵌套。
  2. 對比表達:ArrayList vs LinkedList、HashMap vs ConcurrentHashMap、sleep vs wait、synchronized vs Lock、CMS vs G1。
  3. 實戰經驗:線上 OOM 排查步驟、慢 SQL 優化案例、高併發下緩存擊穿/雪崩解決、分布式鎖實現(Redis/Redisson/ZooKeeper)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類型模式(常用標星)
創建型★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