| 版本 | 全稱 | 應用領域 |
| Java ME | Micro Edition | 嵌入式、移動設備、物聯網 |
| Java SE | Standard Edition | 桌面應用、服務端基礎、核心 API |
| Java EE | Enterprise Edition | 企業級分布式應用、Web 服務、中間件 |
注:Java EE 現更名為 Jakarta EE,由 Eclipse 基金會維護。
核心特性
- 面向對象:封裝、繼承、多態
- 跨平台:JVM 屏蔽底層差異,實現「一次編譯,到處運行」
- 健壯性:強類型、異常處理、自動垃圾回收、無指針操作
- 分布式:RMI、Socket、Web Service、微服務框架支持
- 多線程:語言級線程支持、J.U.C 並發包、Fork/Join、虛擬線程(Java 21+)
編譯與運行流程
HelloWorld.java
──javac.exe(編譯器)──▶
HelloWorld.class (字節碼,平台無關)
──java.exe(啟動器)──▶
JVM (類加載器 → 字節碼驗證 → 解釋執行/JIT 編譯 → 操作系統調用)
關鍵點
.class 非特定平台機器碼,需 JVM 解釋/編譯為本地機器碼
java.exe 本身不解釋字節碼,而是啟動 JVM 進程
- JVM 組件:指令集、寄存器、棧、堆、方法區、垃圾收集器
JVM 內存模型(簡化版)
| 區域 | 線程隔離 | 存儲內容 |
| 程序計數器 (PC Register) | 是 | 當前執行指令地址 |
| 虛擬機棧 | 是 | 棧幀(局部變量表、操作數棧、動態鏈接、返回地址) |
| 本地方法棧 | 是 | Native 方法調用 |
| 堆 | 否(共享) | 對象實例、數組、字符串常量池 |
| 方法區 | 否(共享) | 類信息、常量、靜態變量、JIT 編譯代碼 |
環境搭建
JRE vs JDK
- JRE (Java Runtime Environment):運行 Java 程序,包含 JVM + 核心類庫
- JDK (Java Development Kit):開發 Java 程序,包含 JRE + 編譯器 + 調試工具 + 文檔
包機制
- 本質:文件系統目錄結構
- 作用:組織代碼、避免命名衝突、訪問控制
- 命名慣例:反轉域名(
com.company.project.module)
HelloWorld 完整示例
// HelloWorld.java
package com.example;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Java World!");
}
}
// 編譯運行
// javac -d . HelloWorld.java
// java com.example.HelloWorld
- 上一篇文章: RabbitMQ 在分布式系統中的 Spring 整合實戰:生產者/消費者配置詳解
- 下一篇文章: Java Swing ImageIcon 圖像處理進階:多源加載、二進制操作、縮放顯示完整實現
Copyright ©
程式碼之家 All Rights Reserved