面對龐大的 Java 技術體系,初學者常迷失在「JDK/JRE/JVM/J2EE/J2SE」等術語中。本文梳理 Java 發展史、四大平台版本、開發環境搭建標準流程、核心運行機制,助你建立清晰知識骨架。
| 年份 | 里程碑事件 |
|---|---|
| 1991 | Sun Green 項目啟動,Oak 語言誕生 |
| 1994 | Oak 免費開源,WebRunner 瀏覽器問世(後改名 HotJava),Applet 讓網頁動態化 |
| 1995.03.23 | Oak 更名 Java,JDK 1.0a2 發布,評為當年十大科技產品 |
| 1996 | Sun 成立 JavaSoft,Netscape/IE 支援 Java |
| 1997.02 | JDK 1.1 發布 |
| 1998.12 | JDK 1.2 → J2SDK,Java 細分為 J2ME/SE/EE |
| 2004.09 | JDK 1.5 發布(泛型、註解、自動裝箱等大更新) |
| 2006.11 | Sun 宣布開源 JDK,建立 OpenJDK(GPL v2) |
| 2009.04 | Oracle 74 億美元收購 Sun |
| 2014.03 | JDK 1.8 發布(Lambda、Stream、新時間 API,長期支援版) |
| 平台 | 舊稱 | 定位 | 核心特徵 |
|---|---|---|---|
| Java Card | - | 智能卡/極小設備 | 極精簡 API,支援 Applet |
| Java ME | J2ME | 功能機/嵌入式 | 精簡 API + 移動終端擴展 |
| Java SE | J2SE | 桌面/服務端基礎 | 完整核心 API,JVM 基石 |
| Java EE | J2EE | 企業級分佈式應用 | SE 基礎上大量擴展(javax.*),含 Servlet、JPA、CDI 等 |
現代雲原生架構下,Java EE 已更名 Jakarta EE,Spring Boot 等框架實際上已替代傳統 EE 容器成為主流選型。
| 術語 | 全稱 | 包含內容 | 比喻 |
|---|---|---|---|
| JVM | Java Virtual Machine | 類加載器、執行引擎、運行時數據區 | 「作業系統」 |
| JRE | Java Runtime Environment | JVM + Java SE 標準類庫 (rt.jar 等) | 「運行時庫 + 系統」 |
| JDK | Java Development Kit | JRE + 編譯器(javac)、調試器、打包工具等 | 「開發工具箱」 |
D:\Java\jdk-17 為例)JAVA_HOME=D:\Java\jdk-17 PATH=%JAVA_HOME%\bin;%PATH% CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
注意:JDK 9+ 已移除
dt.jar/tools.jar,CLASSPATH通常只需.即可;模組化後推薦使用--module-path而非 CLASSPATH。
java -version javac -version # 輸出版本號一致即成功
| 目錄 | 說明 |
|---|---|
| bin | javac/java/jar/javadoc 等可執行工具 |
| lib | 類庫文件 (.jar),JDK 9+ 為 jmods 模組 |
| jre | 獨立 JRE 目錄 (JDK 9+ 內置,不再單獨發布) |
| include | JNI 本地開發頭文件 |
| src.zip | 標準類庫源碼 (解壓可閱讀) |
javac Hello.java → 詞法/語法分析 → 生成 Hello.class 字節碼(平台無關)# 命令行演示 javac Hello.java # 生成 Hello.class java Hello # JVM 啟動 -> 類加載 -> main() 入口 -> 執行
給新人的一句話:先跑通 HelloWorld,再搞懂 JDK/JRE/JVM 關係,再啃語法特性,最後進框架。知其然更要知其所以然,Java 路才走得穩。