自學 Java 知識圖譜:基礎、集合、IO、多線程、網絡、GUI、Web、框架全景梳理
本文為自學 Java 過程中的系統性總結,按模塊梳理核心知識點,適合作為面試複習速查表或知識體系構建參考。
一、基礎語法與 OOP 核心
- 基本類型:4 類 8 種,
byte/short/int/long 1/2/4/8 字節,long 賦值需加 L。
- 包裝類:對應基本類型,緩存機制(-128~127)、自動拆裝箱陷阱。
- 三大特性:封裝(隱藏細節)、繼承(單繼承+多層)、多態(向上轉型+動態綁定)。
- 關鍵字:
final(不可變/不可繼承/不可覆蓋)、static(類級共享)、abstract(抽象類/方法)、interface(契約)。
- Object 核心方法:
equals/hashCode 契約、toString、clone 淺拷貝。
二、異常處理體系
Throwable → Error(不可恢復) / Exception → RuntimeException(非受檢) / 受檢異常。
try-catch-finally、throw/throws、try-with-resources (JDK 7+)。
- 自定義異常繼承
Exception,命名以 Exception 結尾。
三、集合框架
| 接口 | 實現 | 特點 |
| List | ArrayList / LinkedList | 有序、可重復、下標訪問 / 增刪快 |
| Set | HashSet / TreeSet | 無序唯一 / 有序唯一 |
| Map | HashMap / TreeMap | 鍵值對、Key 唯一 |
核心原理:HashMap 數組+鏈表/紅黑樹、HashSet 基於 Map 實現、equals/hashCode 契約決定唯一性。
工具類:Collections (排序、二分查找、同步包裝)、Arrays。
四、IO 流體系
- 按方向:輸入流 / 輸出流。
- 按單位:字節流 (
InputStream/OutputStream) / 字符流 (Reader/Writer)。
- 按功能:節點流(直達數據源) / 處理流(裝飾器模式增強)。
- 關鍵裝飾:
Buffered* (緩衝)、InputStreamReader/OutputStreamWriter (字節轉字符)、DataInput/OutputStream (基本類型)、ObjectInput/OutputStream (序列化)。
Serializable 標記接口,transient 跳過序列化。
五、多線程與併發
- 創建方式:實現
Runnable / 繼承 Thread / Callable+Future / 線程池。
- 生命周期:新建 → 就緒 → 運行 → 阻塞 → 死亡。
- 同步機制:
synchronized (對象鎖/類鎖)、Lock (ReentrantLock)、volatile (可見性)。
- 線程通信:
wait/notify/notifyAll、Condition。
- 併發工具:
CountDownLatch、CyclicBarrier、Semaphore、ConcurrentHashMap、ThreadLocal。
六、網絡編程
- TCP:面向連接、可靠、三次握手、
Socket/ServerSocket。
- UDP:無連接、不可靠、快、
DatagramSocket/DatagramPacket。
- URL/HttpURLConnection:HTTP 請求封裝。
七、GUI 與前端基礎
- AWT (重量級、依賴 OS) → Swing (輕量級、純 Java、雙緩衝、可換膚)。
- 佈局管理器:FlowLayout、BorderLayout、GridLayout、CardLayout、GroupLayout。
- 事件模型:事件源、監聽器、適配器模式。
- JavaScript/CSS/XML 基礎:DOM 操作、事件冒泡、AJAX、CSS 選擇器、XML DOM/SAX/StAX 解析。
八、J2EE / Web 開發棧
- Servlet:生命周期、
web.xml 配置、Request/Response/Session/Cookie、Filter、Listener。
- JSP:九大內置對象、四大作用域、JSTL/EL 表達式、自定義標簽、MVC Model1/Model2。
- Struts2:攔截器鏈、值棧、OGNL、Action 支持多數據封裝模式、Result 類型 (dispatch/redirect/chain)。
- Hibernate:Session/SessionFactory、一級/二級緩存、HQL/ Criteria、延遲加載、OpenSessionInView。
- Spring:IOC/DI、AOP、聲明式事務、Spring MVC、模板類 (JdbcTemplate/HibernateTemplate)。
- MyBatis:SQL 映射、動態 SQL、結果映射、插件機制。
九、構建工具與項目管理
- Maven:坐標、依賴傳遞、生命周期、插件、Profile、私服。
- Git/SVN:分支策略、衝突解決、工作流。
十、設計模式與 UML
- 創建型:單例、工廠、建造者、原型。
- 結構型:代理、裝飾器、適配器、外觀。
- 行為型:觀察者、策略、模板方法、責任鏈。
- UML:類圖(泛化/實現/關聯/聚合/組合/依賴)、時序圖、用例圖、活動圖、部署圖。
十一、其他實用工具
- Ant:構建腳本 (
build.xml)。
- XDoclet:註解生成代碼/配置。
- Log4j/Logback/SLF4J:日誌門面與實現、級別、Appender、PatternLayout。
- JUnit/TestNG:單元測試、斷言、參數化、Mockito 模擬。
- DWR:Java 直接暴露給 JavaScript 調用 (AJAX 早期方案)。
十二、數據庫與 SQL
- Oracle/MySQL/SQL Server 基礎操作、索引原理、優化技巧、事務 ACID、隔離級別、鎖機制。
- 分頁查詢、分組統計、外連接、子查詢、游標、存儲過程。
這份總結見證了從「HelloWorld」到「分佈式架構」的成長路徑。技術棧日新月異,但核心原理(內存模型、併發模型、網絡模型、設計原則)永遠不會過時。保持好奇,持續構建。
- 上一篇文章: 張孝祥 Java 第一講 - Java 特點、運行環境與開發環境搭建全記錄
- 下一篇文章: Java 軟件工程師必備六大核心素質:技術、規範、英語與工程思維
Copyright ©
程式碼之家 All Rights Reserved