前言
Java 技術體系龐大,初學者易迷失於無數框架、工具、術語中。本文規劃系統性學翩路徑:工具篇 → 書籍篇 → 進階領域,涵蓋 JDK、應用伺服器、執行環境、經典書籍推薦、Web/EJB/J2EE 核心技術與設計模式,助你建立完整知識骨架。
第一篇:工具篇 — 基礎設施建置
1. JDK (Java Development Kit) — 核心核心
- 地位:Java 整個生態的基石,所有應用伺服器內建特定版 JDK
- 主流發行版:
- Oracle JDK (商業授權)
- OpenJDK 社群版 (免費、開源)
- Eclipse Temurin / Adoptium (推薦、長期支援)
- Amazon Corretto, Azul Zulu, IBM Semeru
- 核心組件:JVM + 標準類庫 (rt.jar/modules) + 開發工具
- 必熟命令列工具:
| 工具 | 用途 | 關鍵參數 |
java | 啟動 JVM 執行類別 | -cp, -Xms/-Xmx, -Dprop=value, -ea, -agentlib:jdwp |
javac | Java 編譯器 | -d, -source/-target, -encoding, -parameters, -Xlint |
jar | 打包/解包 JAR | cvf, xvf, uvf, -C, -m manifest |
javadoc | 產生 API 文件 | -d, -private, -link, -overview |
- 安裝建議:設定
JAVA_HOME、PATH=%JAVA_HOME%\bin、勿設系統 CLASSPATH
2. JDK Documentation — 程式設計師隨身手冊
- 涵蓋完整 API 規範、語言規格、工具指南、教學範例
- 結構:套件 → 類別 → 欄位/建構子/方法/例外/使用範例
- 建議:IDE 整合離線文件、瀏覽器書籤常用套件 (java.lang, java.util, java.io, java.sql, javax.servlet...)
3. 應用伺服器 — 企業級運行平台
| 伺服器 | 定位 | 特色 | 學習建議 |
| Tomcat | Servlet/JSP 容器 (非完整 J2EE) | 輕量、啟動快、生態豐富、產品級穩定 | Web 入門首選、Spring Boot 內建 |
| Jetty | Servlet 容器、嵌入式優秀 | 模組化、嵌入式首選、Spring Boot 可切換 | 嵌入式開發、微服務 |
| WildFly (JBoss) | 完整 Jakarta EE 相容 | 開源、模組化、管理主控台強大 | 完整 EE 規範學習 |
| GlassFish / Payara | Jakarta EE 參考實作 | 標準相容度最高、管理 UI 完善 | 規範驗證、教學示範 |
| WebLogic | 商業級、企業級首選 | 效能、叢集、診斷、安全功能最完整 | 大型企業專案、認證考試 |
| WebSphere | IBM 商業級 | 大型機整合、工具鏈完整 | IBM 技術棧專案 |
Tomcat 快速上手
- 下載:tomcat.apache.org (建議 9.0/10.1 LTS)
- 解壓縮 → 設定環境變數:
JAVA_HOME=C:\Java\jdk-21
CATALINA_HOME=D:\apache-tomcat-10.1
- 啟動:
%CATALINA_HOME%\bin\startup.bat
- 驗證:https://localhost:8080
- 管理介面啟用:編輯
conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="secret" roles="manager-gui,admin-gui"/>
- 管理網址:
/manager/html, /host-manager/html
4. Java 應用分層架構
| 類型 | 層次 | 技術棧 |
| 桌面應用 | Client + DB | Swing/JavaFX, JDBC, SQLite/PostgreSQL |
| Web 應用 (3 層) | Browser → Web (Servlet/JSP/Spring MVC) → DB | Tomcat/Jetty, Spring Boot, MyBatis/JPA |
| 企業級應用 (n 層) | Browser → Client (Applet/JavaFX) → Web → EJB → DB | 完整 App Server, JMS, JTA, JNDI, JavaMail |
| 嵌入式/行動 | Device → Gateway → Backend | Java ME (歷史), Android (現代), Quarkus/Micronaut |
第二篇:書籍篇 — 系統性知識獲取
入門選書策略
- 避坑:不要一開始買「大全」、「高級技巧」、「從入門到精通」類速成書
- 原則:薄而全 入門書 + 官方文件 + 實作練習
- 推薦路徑:
- 入門:Head First Java (O'Reilly) — 視覺化、腦科學教學法、OO 觀念紮實
- 語法參考:Java in a Nutshell (O'Reilly) — 桌邊速查手冊
- 核心類庫:JDK Documentation — 終極權威來源
進階必讀經典
| 領域 | 經典著作 | 核心價值 |
| 語言精進 | Effective Java (Joshua Bloch) | 90+ 項最佳實踐、API 設計哲學、避坑指南 |
| 並發程式 | Java Concurrency in Practice (Brian Goetz) | JMM、鎖、佇列、執行緒池、不可變物件、完整理論與實戰 |
| JVM 深度 | 深入理解 Java 虛擬機 (周志明) | 類載入、記憶體模型、GC 演算法、調優實戰、中文最佳 |
| Web 開發 | Spring in Action / Spring Boot in Action | Spring 生態系統實戰、依賴注入、AOP、資料存取、安全 |
| 資料存取 | High Performance Java Persistence (Vlad Mihalcea) | JPA/Hibernate 深度、SQL 優化、連線池、快取策略 |
| 微服務 | Building Microservices (Sam Newman) | 架構演進、服務拆分、資料一致性、部署運維 |
| 設計模式 | Design Patterns (GoF) / Head First Design Patterns | 23 經典模式、OO 設計原則、可復用物件導向軟體 |
| J2EE 模式 | Core J2EE Patterns (Sun) | 企業級架構模式、前端控制器、業務代表、DAO、VO |
關於《Thinking in Java》的正確用法
- ❌ 不適合入門 (跳躍式、Tips 風格、非系統性)
- ✅ 適合進階參考:特定主題深入 (泛型、反射、並發、IO)
- 建議:入門書同步閱讀對應章節加深理解
文件 > 書籍 的核心論點
「幾乎所有 Java 書籍只是用通俗語言重述 Documentation 內容」。若具備直接閱讀 API 文件能力,書籍僅作輔助。必備三大文件捷徑:
- JDK API (java.*, javax.*)
- Servlet/JSP API (javax.servlet.*)
- J2EE/Jakarta EE API (jakarta.*)
第三篇:核心技術深入學習路徑
Web 開發核心
- HTTP 協定 (RFC 7230/7231) — 與 Java 無關但最核心
- Servlet API (javax.servlet.*) — Web 容器契約
- JSP / JSTL / EL — 視圖層 (現代多用 Thymeleaf/FreeMarker/前後端分離)
- Filter/Listener/Async Servlet — 進階容器機制
- 推薦書:Head First Servlets & JSP (考 SCWCD 最佳)
EJB / 業務邏輯層
- EJB 3.x 規範 (Session Bean, MDB, Timer, Interceptor)
- JPA 2.x (Entity, JPQL, Criteria, 快取, 鎖定)
- CDI (Contexts & Dependency Injection) — 現代 DI 標準
- 推薦書:Enterprise JavaBeans (Bill Burke), Pro JPA 2 (Mike Keith)
- 必配合 App Server 實作:WildFly/GlassFish/WebLogic 部署練習
設計模式與架構
- GoF 23 模式 → 企業級模式 (Core J2EE Patterns) → 領域驅動設計 (DDD)
- 架構師必讀:Patterns of Enterprise Application Architecture (Martin Fowler)
- 現代演進:微服務模式、事件驅動、CQRS、Event Sourcing
總結:學習地圖一覽
Phase 1: 基礎建置 (2 週)
├── JDK + IDE + Maven/Gradle + Git
├── HelloWorld → 基本語法 → OO → 集合 → 例外 → IO
└── 閱讀: Head First Java + JDK Doc
Phase 2: Web 核心 (1-2 月)
├── HTTP + Servlet + JSP + Filter + JDBC + Connection Pool
├── Tomcat 部署調試
├── Spring Boot 入門 (DI, AOP, MVC, Data JPA)
└── 閱讀: Spring in Action + Servlet Spec
Phase 3: 企業級進階 (3-6 月)
├── 完整 App Server (WildFly/WebLogic)
├── EJB/JPA/CDI/JMS/JTA
├── 設計模式 + 架構模式
├── JVM 調優 + 並發編程
└── 閱讀: Effective Java + JCiP + 深入理解JVM + EJB/JPA 專書
Phase 4: 現代雲原生 (持續)
├── 微服務架構 (Spring Cloud / Quarkus / Micronaut)
├── 容器化 (Docker, Kubernetes)
├── 觀測性 (Metrics, Tracing, Logging)
├── GraalVM Native / Serverless
└── 閱讀: Building Microservices + 雲原生相關專書
核心心法:文件為本、實戰為王、工具為輔、模式為骨。Java 技術更新快,但核心原理 (JVM、JMM、OO、網路協定) 相對穩定。建立扎實基本功,新框架新工具自然迎刃而解。