前言
Java 生態龐大,初學者易迷失。本文提煉六大核心能力維度,助你建立結構化知識圖譜,從「會寫代碼」進階為「能交付項目」。
能力維度一:面向物件思維 (OOAD)
- 核心概念:封裝、繼承、多型、抽象類 vs 介面
- 實戰判斷:能說清「類與物件差異」、「為何偏好組合而非繼承」、「介面隔離原則如何指導模組設計」
- 進階:掌握 SOLID 原則、常用設計模式 (Strategy、Factory、Template Method、Decorator)
能力維度二:Java 語法與核心 API
- 集合框架:`List/Set/Map` 實現差異、執行緒安全版本、Stream API (Java 8+)
- 異常體系:Checked vs Unchecked、自訂異常、try-with-resources
- 併發基礎:`synchronized`、`volatile`、`ThreadLocal`、JUC 核心類
- I/O 與 NIO:檔案操作、序列化、字元/位元組流轉換
- JVM 基礎:記憶體模型、垃圾回收器類型、基本調優參數
能力維度三:Web 前端基礎 (JSP/HTML/CSS/JS)
| 技術 | 必會項目 |
| JSP | 9 大內建物件、JSTL 標籤庫、EL 表達式、自訂標籤 |
| HTML5 | 語義化標籤、表單驗證、本地儲存 |
| CSS | Flex/Grid 佈局、BFC、響應式設計 |
| JavaScript | ES6+ 語法、DOM 操作、Fetch/Axios、事件循環、模組化 |
即使後端為主,理解前後端協議(RESTful、JSON、CORS、Token 認證)是溝通橋樑。
能力維度四:Web 容器與部署運維
- Tomcat/Jetty:目錄結構、虛擬主機、連線池配置 (`context.xml`)、SSL、日誌分析
- 部署流程:WAR 包構建、熱部署、版本回滾、藍綠部署概念
- 反向代理:Nginx 靜態資源分離、負載均衡、限流、HTTPS 終結
能力維度五:開發工具鏈
- IDE:IntelliJ IDEA (主流)、Eclipse — 精通除錯、重構、Live Templates、Database 工具
- 建構工具:Maven/Gradle — 依賴管理、多模組、Profile 區分環境
- 版本控制:Git Flow、分支策略、Code Review 流程
- 持續整合:Jenkins/GitLab CI — 自動化測試、打包、部署管線
能力維度六:主流框架實戰 (可選但強烈建議)
- Spring 生態:Spring Boot 微服務快速開發、Spring MVC、Spring Data JPA、Spring Security、Spring Cloud 入門
- ORM:MyBatis 動態 SQL、Hibernate 延遲載入、事務傳播行為
- 工具類:Lombok、MapStruct、Hutool、Guava
框架本質是「約定優於配置」與「控制反轉」,理解其設計動機比背誦 API 更重要。
給初學者的行動建議
- 搭建一個「從請求到資料庫」的完整 Maven 專案 (Servlet + JSP + JDBC + MySQL)
- 重構為 Spring Boot + MyBatis + Thymeleaf,體會框架解決的痛點
- 閱讀 Spring Boot 核心原理文章(自動配置、Starter 機制)
- 參與開源專案或模擬真實業務場景(電商訂單、部落格系統)
- 建立技術部落格,輸出倒逼輸入