| JDK 發佈方 | 特點 | 適用場景 |
|---|---|---|
| Sun/Oracle JDK | 參考實現、生態最全、長期支持 (LTS) | 學習、通用開發、生產首選 |
| IBM JDK (現 Semeru) | JVM 優化極致、吞吐/延遲表現優於 HotSpot | 高併發、大內存、Power/AIX 平台 |
| BEA JRockit (併入 Oracle) | 專為服務端優化、無解釋器直接 JIT、x86 性能強 | 歷史 WebLogic 專用、現已合併 |
| Azul Zing/Zulu | 無停頓 GC (C4)、商業支持 | 超低延遲交易、大內存緩存 |
| OpenJDK / Adoptium (Temurin) | 開源免費、社區驅動、LTS 版本穩定 | 現代雲原生、容器化、CI/CD 標準 |
| GraalVM | 多語言、AOT 編譯原生映像、啟動極快 | Serverless、微服務、Polyglot 場景 |
建議:學習階段用 Oracle JDK / Temurin 17/21 LTS;生產按架構選型,OpenJDK 系已成主流。
僅需 JRE。Swing/JavaFX、SWT、Electron+Java (JPro)、TornadoFX。現代趨勢:Web 技術替代 (Electron/TAURI) 或原生映像。
Browser (HTML/JS/CSS)
↓ HTTP/REST/WS
Web 容器 (Tomcat/Jetty/Undertow) : Servlet/JSP/Controller/Filter
↓ JDBC/ORMapping
DB (MySQL/Oracle/PostgreSQL)
Spring Boot 內嵌容器簡化部署為單 JAR。
Gateway (Spring Cloud Gateway / Kong)
↓
Service Mesh (Istio / Linkerd) / Client-side LB (Ribbon/LoadBalancer)
↓
MicroServices (Spring Boot / Quarkus / Node.js / Go)
↓
Service Registry (Nacos / Eureka / Consul)
Config Center (Nacos / Apollo / Consul)
↓
Data Layer: ShardingSphere / MyCat / TiDB / Cassandra / Redis / ES
↓
Message Bus: Kafka / RocketMQ / Pulsar / RabbitMQ
核心變化:EJB → POJO + Spring → 微服務 + Service Mesh;狀態外部化、可觀測性內建。
早期 J2ME (CLDC/MIDP) → Java SE Embedded (完整 JVM 裁剪) → Java ME 8+ (模塊化) → 現代:
- 裸機/RTOS:Eclipse Kura、ThingsBoard Edge
- 高性能邊緣:GraalVM Native Image、Quarkus
- Android:藝術運行時 (ART),非標準 Java 但語言共通
# Linux/macOS ~/.bashrc / ~/.zshrc
export JAVA_HOME=/usr/lib/jvm/temurin-21-jdk
export PATH=$JAVA_HOME/bin:$PATH
# Maven
export MAVEN_HOME=/opt/apache-maven-3.9
export PATH=$MAVEN_HOME/bin:$PATH
# 驗證
java -version
mvn -version
Windows 同理設置系統環境變量。避免 在 Path 中硬編碼版本路徑,用 JAVA_HOME 引用。
初學者關注「能跑起來」;架構師關注:
開發環境不是終點,是交付管道的起點。