Java 小白必懂的 20 個核心術語:從 .class 到 EJB 全景解析
參考《Java 征途:行者的地圖》學習路徑,梳理入門必會的核心名詞,補充實戰視角解釋,建立完整知識地圖。
文件與構建產物
| 術語 | 全稱/含義 | 實戰角色 | 類比/補充 |
.java | Java 源代碼文件 | 開發編寫的原始邏輯 | 文本文件,UTF-8 編碼 |
.class | 字節碼文件 | JVM 執行的指令集 | 類似 Windows .dll,平台無關 |
.jar | Java Archive | 類庫分發單元,含類/資源/清單 | 本質是 ZIP,可 jar tf 查看 |
.war | Web Archive | Web 應用部署包,含 JSP/WEB-INF/lib | 專用於 Servlet 容器 |
.ear | Enterprise Archive | 企業級應用包,含多模塊 WAR/JAR | Java EE 完整應用交付格式 |
核心企業級規範
| 縮寫 | 全稱 | 核心作用 | 關鍵點 |
| JMS | Java Message Service | 消息中間件統一 API(P2P/發布訂閱) | 異步解耦、削峰填谷、最終一致性基石 |
| JNDI | Java Naming and Directory Interface | 命名服務統一查找(DataSource/EJB/環境變量) | 「代碼不寫死 IP」,環境隔離關鍵 |
| JTA | Java Transaction API | 分布式事務邊界控制(多資源協調) | 比 JDBC 事務強:跨庫、跨隊列、跨資源管理器 |
| JTS | Java Transaction Service | JTA 的底層實現(CORBA OTS 映射) | 應用層用 JTA,容器層實現 JTS |
| JAT | Java Agent Template | Java Agent 開發框架(字節碼增強/監控) | 易與 JTA 混淆,實為 javaagent 開發模板 |
EJB 發展史與現狀
EJB 1.x/2.x (2000-2006)
├── 實體 Bean (CMP/BMP) → 被 JPA/Hibernate 取代
├── 會話 Bean (Stateful/Stateless) → 核心邏輯載體
├── 消息驅動 Bean (MDB) → 異步消費標準
└── 痛點:重配置、Home/Remote 接口、強制容器、測試難
EJB 3.0+ (Java EE 5, 2006~)
├── 註解驅動 (@Stateless, @Entity, @MessageDriven)
├── 無接口視圖 (No-interface View)
├── 依賴注入 (@EJB, @PersistenceContext)
├── JPA 獨立規範化
└── 現狀:Spring 生態統治,EJB 3.x 僅在傳統 Java EE 專案存活
Web 容器 vs 應用服務器
- Servlet 容器:Tomcat、Jetty、Undertow —— 只支持 Servlet/JSP/JSTL/EL/WebSocket
- Java EE 應用服務器:WildFly、WebLogic、WebSphere、GlassFish —— 全棧支持 EJB/JTA/JMS/JPA/JCA/Concurrency/Batch
- 選型建議:微服務/雲原生首選 Spring Boot + Tomcat/Undertow;傳統單體、強事務、雙階段提交場景評估 WildFly/WebLogic
建議學習路徑
- 語言核心:JVM 內存模型、集合框架、並發包、類加載機制
- Web 基礎:HTTP/HTTPS、Servlet API、Filter/Listener、Session/Cookie
- 框架實戰:Spring IOC/AOP、Spring MVC、Spring Boot、MyBatis/JPA
- 中間件:Redis、Kafka/RocketMQ、MySQL/PostgreSQL、Nginx、Docker/K8s
- 分布式:CAP/BASE、分布式事務、服務發現、配置中心、鏈路追蹤
- 進階專題:JVM 調優、源碼閱讀、架構設計、性能優化、安全加固
避坑指南
- ❌ 死記縮寫全稱 → ✅ 理解其解決什麼問題、用在哪層
- ❌ 追新棄舊(如學 WebFlux 不學 Servlet) → ✅ 先懂阻塞模型再學響應式
- ❌ 只會用框架不懂原理 → ✅ 定期閱讀核心源碼
- ❌ 忽略構建工具 → ✅ 精通 Maven/Gradle 依賴調解、多模塊、Profile