成為 Java 高手不在於背誦 API,而在於構建分層、可遞歸、可驗證的能力模型。本文將 25 項要點重組為五大維度:**語言核心、平台機制、企業級開發、架構治理、工程效能**,每項給出核心指標、進階深度、實戰驗證方式,助你制定個人化成長路徑。
| # | 能力項目 | 核心指標 (必會) | 進階深度 (高手) | 實戰驗證 |
|---|---|---|---|---|
| 1 | OOA/OOD & 設計模式 | 掌握 GoF 23 模式意圖/結構/適用場景;能畫 UML 類/序列/狀態圖 | 領域驅動設計 (DDD) 戰術模式 (Entity/VO/Aggregate/Repository/Domain Event);架構模式 (CQRS/Event Sourcing/Hexagonal) | 重構 legacy 代碼消除異味;設計新模組類圖並通過 Code Review |
| 2 | Java 語言核心與核心類庫 | 集合/流/序列化/網路/多執行緒/反射/事件/NIO/本地化 | 原始碼級理解 HashMap/ConcurrentHashMap/ThreadPoolExecutor/CompletableFuture;VarHandle、MethodHandle、Foreign Function & Memory API (JDK 22+) | 手寫簡易集合/線程池/未來框架;排查生產死鎖/記憶體洩漏 |
| 3 | JVM 內部機制 | 類載入器雙親委派、字節碼結構、GC 基礎 (Serial/Parallel/CMS/G1/ZGC)、JIT 編譯 | JIT 編譯優化 (逃逸分析、標量替換、內聯);GC 調優實戰 (堆外記憶體、直接緩衝區、元空間);GraalVM Native Image 編譯原理 | 線上 OOM/Full GC 排查報告;基準測試 (JMH) 優化熱點路徑 |
| 4 | 客戶端 / 桌面技術 (選修) | Swing/JavaFX 基礎、FXML、屬性綁定、模組化 (JPMS) | JavaFX 自定義控件、皮膚、動畫、WebView 整合、GraalVM 多語言互操作 | 交付可安裝原生桌面應用 (jpackage/MSI/DMG) |
| # | 能力項目 | 核心指標 | 進階深度 | 實戰驗證 |
|---|---|---|---|---|
| 5 | 持久層 / ORM | JPA/Hibernate/MyBatis 基礎 CRUD、關聯映射、一級/二級快取 | SQL 調優 (執行計畫、索引、鎖);分庫分表 (ShardingSphere);多租戶;事件溯源持久化 | 解決 N+1 問題;設計高併發寫入架構 (樂觀鎖/分布式鎖) |
| 6 | 關係型資料庫深度 | Oracle/MySQL/PostgreSQL 架構、事務隔離級別、鎖機制、分區表 | HTAP (TiDB/OceanBase);讀寫分離中間件;資料庫內核原理 (LSM Tree/B+ Tree、WAL、MVCC) | 慢查詢根因分析與優化;跨庫分布式事務方案選型 (Seata/2PC/TCC) |
| 7 | Servlet/JSP/JSTL & Web 標準 | Filter/Listener/Session/Cookie、JSTL 標籤、MVC 流程 | Servlet 6.0 新特性 (虛擬執行緒支援);響應式 Servlet (Spring WebFlux);GraalVM 即時編譯加速 | 從零手寫微型 MVC 框架;Servlet 容器原理剖析 (Tomcat/Jetty/Undertow) |
| 8 | 主流 Web 框架 | Spring MVC / Spring Boot 核心 (IoC/AOP/事務/啟動流程/自動配置) | Spring 6 / Boot 3 原生支援 (AOT 編譯、GraalVM);響應式編程 (Reactor/RxJava);模組化架構治理 (ArchUnit) | 設計企業級脚手架;排查 Bean 生命週期/循環依賴/事務失效疑難雜癥 |
| 9 | Web 容器運維 | Tomcat/Jetty 配置 (連接器、線程池、Valve、Realm)、部署、日誌分析 | 容器原生 (Docker/K8s) 部署優化;原生映像啟動 < 0.1s;Service Mesh (Istio/Linkerd) 流量治理 | 生產環境容器化遷移;JVM 參數調優 (容器感知 -XX:+UseContainerSupport) |
| # | 能力項目 | 核心指標 | 進階深度 | 實戰驗證 |
|---|---|---|---|---|
| 10 | 遠程通訊 / RPC | RMI、HTTP/REST、gRPC (Protobuf)、Dubbo、Spring Cloud OpenFeign | 服務發現/註冊 (Nacos/Consul/Etcd);負載均衡/熔斷/限流 (Sentinel/Resilience4j);多協定網關 | 設計高可用 RPC 框架;排查超時/重試風暴/級聯失效 |
| 11 | 中間件標準與整合 | JMS (ActiveMQ/RocketMQ/Kafka)、JTA (Atomikos/Bitronix)、JMX、JavaMail | 事件驅動架構 (EDA);異步最終一致性 (Outbox 模式、事務訊息);Schema Registry (Avro/Protobuf) | 實現跨服務分布式事務;百萬級訊息吞吐調優 |
| 12 | XML/JSON 處理 | JAXP (DOM/SAX/StAX)、Jackson、Gson、DOM4J、JDOM、XPath | 零拷貝解析 (simd-json);Schema 驗證/演進;大檔案串流處理;防 XXE/XEE | 高效能配置中心/報文網關開發 |
| 13 | Web Services / API 設計 | JAX-RS/RESTful 設計原則、OpenAPI/Swagger、GraphQL、gRPC | API 版本演進策略;契約測試 (Pact);BFF 模式;API 安全 (OAuth2/JWT/mTLS) | 發布企業級 API 平台;治理 500+ API 生命週期 |
| 14 | 輕量級容器 / IoC 進階 | Spring IoC/DI (Setter/Constructor/Field)、@Configuration/@Bean、條件裝配 | 自定義 NamespaceHandler、BeanDefinitionRegistryPostProcessor、AOT 編譯優化、GraalVM 相容性改造 | 開發領域特定框架 (Starter);解決循環依賴/啟動效能瓶頸 |
| # | 能力項目 | 核心指標 | 進階深度 | 實戰驗證 |
|---|---|---|---|---|
| 15 | J2EE/Jakarta EE 核心規範 | JNDI、JMS、JTA/JTS、JMX、JavaMail、Servlet、JPA、CDI、Bean Validation | 規範實現原理 (Weld/CDI、Narayana/JTA、Hibernate/JPA);Jakarta EE 10/11 新特性 | 在非全功能容器 (Tomcat/Jetty) 整合完整 EE 功能集 |
| 16 | EJB / 企業級組件模型 (了解即可) | Session/Entity/Message-Driven Bean、BMP/CMP、EJB-QL、Timer Service | EJB 3.2+ 簡化模型;與 Spring 對比遷移;微服務下無狀態服務替代 EJB | 維護 legacy EJB 系統遷移至 Spring Cloud |
| 17 | 應用伺服器管理與調優 | WebLogic/JBoss/WildFly 安裝、配置、資料源、叢集、監控 (JConsole/VisualVM/Prometheus) | K8s Operator 管理 Java 應用;GraalVM Native 部署;混沌工程 (Litmus/ChaosBlade) 驗證韌性 | 生產叢集滾動升級零停機;故障自動恢復演練 |
| 18 | AOP / 面向切面程式設計 | Spring AOP (JDK Dynamic Proxy/CGLIB)、AspectJ (CTW/LTW)、切點表達式 | AspectJ 編譯時織入原理;模組化切面設計;效能監控/追蹤/安全切面最佳實務 | 實現通用權限/日誌/事務/重試/限流切面庫 |
| 19 | 常用工具庫生態 | Log4j2/Logback、Quartz、JGroups、Caffeine/Redis、Lucene/Elasticsearch、Commons Lang/IO/Collections | 原始碼級理解核心組件 (如 Caffeine W-TinyLFU、Lucene LSM 段合併);自定義擴充 | 選型報告 (為何選 Caffeine 不選 Guava Cache);排查工具庫 Bug 並提交 PR |
| # | 能力項目 | 核心指標 | 進階深度 | 實戰驗證 |
|---|---|---|---|---|
| 20 | IDE 深度掌握 | IntelliJ IDEA 重構/除錯/分析/Live Template/Structural Search/Database Tools | 插件開發 (IntelliJ Platform);遠程除錯生產鏡像;AI 輔助編程 (Copilot/Codeium) 效能最大化 | 單鍵完成複雜重構;撰寫團隊共用 Live Template/Inspection |
| 21 | 代碼生成與元編程 | Annotation Processor (Lombok/MapStruct)、XDoclet、MyBatis Generator、JHipster | 編譯期元編程 (KSP/KAPT);運行時代理 (ByteBuddy/cglib);DSL 設計 (Gradle/Kotlin) | 開發公司級代碼生成器;消除樣板代碼 80%+ |
| 22 | 測試體系與建構部署 | JUnit 5 / TestNG、Mockito、AssertJ、Testcontainers、Maven/Gradle 多模組構建、CI/CD (Jenkins/GitLab CI/GitHub Actions) | 契約測試、混沌測試、效能基準測試 (JMH) 自動化;單體應用遷移單倉多模組流水線 | 達到 80%+ 單測覆蓋率;構建時間 < 10min;零停機部署 |
| 23 | 軟體工程流程 | RUP 階段/制品、敏捷 (Scrum/Kanban/XP)、用戶故事/驗收標準、持續重構、技術債管理 | 度量驅動開發 (DORA 指標);架構決策記錄 (ADR);領域驅動設計落地流程 | 主導團隊流程改進;交付可度量的品質報告 |
| 24 | 技術前瞻與持續學習 | 關注 JDK 新版本 (LTS 每 2 年)、Spring 生態、CNCF 全景圖、論文/會議 (QCon/Devoxx/Javaland) | 參與開源社區貢獻 (Apache/JDK/Spring);技術專利/論文輸出;技術影響力建設 | 每季產出一篇深度技術文章/分享;追蹤並嘗試 1-2 項前沿技術 (如 Virtual Threads/Structured Concurrency/Vector API) |
| 25 | 實戰項目經驗 (核心門檻) | 至少 2 個上線運行、有真實用戶/業務價值的專案 (非練習/玩具) | 主導 0-1 系統設計;技術選型決策擔當;跨團隊協作交付;生產事故複盤改進 | 面試時能清晰講述:業務背景→技術挑戰→方案對比→落地細節→量化結果→踩坑教訓 |
這 25 項不是檢查清單,而是能力雷達圖。每個人強弱不同,關鍵在於:識別自身盲區 → 制定季度提升計畫 → 在真實專案中刻意練習 → 輸出可複用資產 (文檔/代碼/工具/分享)。第 25 項「實戰項目」是檢驗前 24 項的唯一試金石——**沒有生產環境的燒灼,所有理論都只是紙上談兵**。從今天開始,選一項最薄弱的能力,啟動你的刻意練習閉環。