| 組件 | 核心實現 | 關鍵設計模式 |
| ArrayList | 動態陣列、1.5倍擴容 | 隨機訪問介面 |
| LinkedList | 雙向鏈表 | Deque、Queue |
| HashMap | 陣列+鏈表/紅黑樹、resize、treeify | 工廠方法、迭代器 |
| ConcurrentHashMap | CAS+synchronized、段鎖→Node鎖 | 分離鎖、快速失效迭代器 |
模塊三:I/O 與 NIO
經典教材
- 《Java I/O》- Elliotte Rusty Harold (O'Reilly):流裝飾器模式深度解析
- 《Java NIO》- Ron Hitchens:Buffer、Channel、Selector 核心三件套
必懂架構
輸入流 輸出流
InputStream OutputStream
↑ ↑
FileInputStream FileOutputStream
↑ ↑
BufferedInputStream BufferedOutputStream ← 裝飾器模式核心
↑ ↑
ObjectInputStream ObjectOutputStream ← 序列化
字符流體系:Reader/Writer = InputStreamReader/OutputStreamWriter 橋接
Netty 入門基石
NIO 非阻塞模型 → Selector 多路複用 → Channel/Buffer 零拷貝 → 理解 Netty 架構根基
模塊四:數據庫與 JDBC
推薦書籍
- 《JDBC Recipes》- APress:問題導向,覆蓋連接池、事務、批處理、Blob/Clob、RowSet
- 《High Performance MySQL》:索引優化、鎖機制、複製架構、調優實戰
JDBC 核心流程
1. Class.forName("com.mysql.cj.jdbc.Driver") // SPI 機制自動加載 (JDBC 4.0+ 可省略)
2. Connection conn = DriverManager.getConnection(url, user, pwd)
3. PreparedStatement ps = conn.prepareStatement(sql) // 預編譯、防注入
4. ResultSet rs = ps.executeQuery() / ps.executeUpdate()
5. 處理結果集 → 關閉資源 (try-with-resources 自動關閉)
模塊五:網絡編程
學習路徑
- Socket/ServerSocket 阻塞 I/O 模型
- NIO 非阻塞:Selector + Channel + Buffer
- 應用層協議:HTTP/HTTPS、WebSocket、自定義協議
- 框架實戰:Netty、Mina、gRPC
必讀資源
- 《Java Network Programming》第 3 版 - O'Reilly
- Netty 官方指南 + 源碼分析文章
模塊六:Servlet/JSP/Web 核心
核心認知
- Servlet 本質:實現 Servlet 介面、由容器管理生命週期的類
- 核心流程:Request → Filter 鏈 → Servlet → Response
- JSP 本質:編譯為 Servlet,模板引擎思想
推薦書籍
- 《Servlet & JSP 核心編程》- Addison Wesley
- Tomcat 架構源碼分析:Connector、Container、Lifecycle、Pipeline-Valve
模塊七:多線程與併發
兩大神書
- 《Java 並發編程實戰》- Brian Goetz:理論 + 實戰
- 《Java 並發編程的藝術》- 方騰飛:AQS、JUC 源碼深度解析
知識體系
基礎:Thread、Runnable、synchronized、volatile、wait/notify
進階:JUC 包
- 鎖:ReentrantLock、ReadWriteLock、StampedLock
- 原子類:AtomicInteger、LongAdder、AtomicReference
- 併發集合:ConcurrentHashMap、CopyOnWriteArrayList、BlockingQueue
- 線程池:ThreadPoolExecutor、ForkJoinPool、CompletableFuture
- 同步工具:CountDownLatch、CyclicBarrier、Semaphore、Phaser
- AQS 框架:同步器核心、狀態管理、條件隊列
模塊八:設計模式與架構
分級閱讀
| 層級 | 書籍 | 特色 |
| 入門 | 《Head First 設計模式》 | 圖文並茂、生活化比喻 |
| 進階 | 《Java 與模式》- 閻宏 | 國人寫作、中文語境、大量類圖 |
| 經典 | 《設計模式》- GoF | 權威定義、C++例子需轉換 |
| 架構級 | 《企業應用架構模式》- Fowler | 分層、領域邏輯、數據源、Web 表現 |
| 敏捷 | 《敏捷軟件開發原則模式與實踐》- Uncle Bob | SOLID 原則、包設計原則 |
進階延伸方向
- 源碼級掌握:Spring 源碼、MyBatis 源碼、Tomcat/Jetty、JVM 源碼
- 中間件深度:Redis、Kafka、ElasticSearch、RocketMQ 原理與調優
- 雲原生:Kubernetes、Docker、Service Mesh、Serverless
- 領域建模:DDD 戰略/戰術設計、事件驅動、CQRS
總結
這八大模塊構成 Java 後端工程師的「硬核基本功」。建議採用「輸入→輸出→實戰→總結」閉環:讀一章源碼/書 → 寫一篇筆記/博客 → 跑一個 Demo/項目 → 複盤知識圖譜。持續半年,質變可期。
- 上一篇文章: Java 程式員進階必讀書單:從入門到架構師的完整路徑圖
- 下一篇文章: Java Stack 實作詳解:陣列與鏈表兩種實現方式及應用範例
Copyright ©
程式碼之家 All Rights Reserved