Java 筆試知識點總結(第一期)
整理了 Java 校招、社招筆試中高頻出現的核心知識點,涵蓋基礎語法、集合框架、併發編程、JVM、框架原理五大模塊,適合面試前快速回顧。
一、Java 基礎與語法
- 基本類型 vs 包裝類:自動拆裝箱陷阱、緩存範圍(-128~127)、
== 比較引用地址。
- String 不可變性:
+ 拼接底層 StringBuilder、常量池機制、intern() 作用。
- equals & hashCode 契約:重寫規則、HashMap/HashSet 依賴關係。
- 異常體系:Checked vs Unchecked、try-with-resources、自定義異常最佳實踐。
- 泛型擦除:類型擦除原理、通配符
<? extends T> / <? super T> PECS 原則。
二、集合框架
- ArrayList vs LinkedList:擴容機制、隨機訪問 vs 插入刪除性能、
fail-fast 機制。
- HashMap 核心:JDK 1.7 數組+鏈表 → 1.8 紅黑樹化、擴容死循環、
resize()、putVal() 流程、負載因子 0.75 取舍。
- ConcurrentHashMap:1.7 Segment 分段鎖 → 1.8 CAS + synchronized + 紅黑樹、
size() 計算方式變化。
- Set 實現:HashSet(底層 HashMap)、LinkedHashSet(有序)、TreeSet(紅黑樹、自然序/定製序)。
三、併發編程
- 線程狀態:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED 流轉。
- synchronized 進階:對象鎖/類鎖、鎖升級(偏向→輕量級→重量級)、鎖消除/粗化。
- volatile 關鍵字:可見性、有序性(禁止指令重排)、不保證原子性、DCL 單例模式。
- AQS 框架:state 狀態、FIFO 隊列、獨佔/共享模式、Condition 實現原理。
- 線程池七大參數:core/maximumPoolSize、keepAliveTime、workQueue、threadFactory、handler 拒絕策略、
execute() 流程圖。
四、JVM 核心
- 內存模型:堆(新生代 Eden/S0/S1、老年代)、元空間、虛擬機棧、本地方法棧、程序計數器。
- GC 算法:標記-清除、標記-整理、複製、分代收集;G1/ZGC/Shenandoah 低延遲收集器原理。
- 類加載機制:雙親委派、破壞雙親委派場景(Tomcat、SPI)、熱部署原理。
- 性能調優:-Xms/-Xmx/-Xmn/-Xss、GC 日誌分析、Arthas/JVisualVM/MAT 實戰工具。
五、主流框架原理
- Spring IOC/AOP:Bean 生命周期、三級緩存解決循環依賴、動態代理(JDK/CGLIB)、切面織入時機。
- SpringMVC 流程:DispatcherServlet→HandlerMapping→HandlerAdapter→ViewResolver,攔截器鏈。
- SpringBoot 自動配置:@EnableAutoConfiguration→spring.factories→@Conditional 條件裝配。
- MyBatis:一級/二級緩存、動態 SQL 標籤、插件攔截器鏈、分頁插件原理。
後續將推出「第二期:中間件與分布式」、「第三期:場景設計題」敬請期待!