
Java 教程
- Java - 首頁
- Java - 概述
- Java - 歷史
- Java - 特性
- Java 與 C++
- JVM - Java 虛擬機器
- Java - JDK 與 JRE 與 JVM
- Java - Hello World 程式
- Java - 環境設定
- Java - 基本語法
- Java - 變數型別
- Java - 資料型別
- Java - 型別轉換
- Java - Unicode 系統
- Java - 基本運算子
- Java - 註釋
- Java - 使用者輸入
- Java - 日期和時間
Java 控制語句
- Java - 迴圈控制
- Java - 決策制定
- Java - If-else
- Java - Switch
- Java - For 迴圈
- Java - For-Each 迴圈
- Java - While 迴圈
- Java - do-while 迴圈
- Java - Break
- Java - Continue
面向物件程式設計
- Java - OOPs 概念
- Java - 物件和類
- Java - 類屬性
- Java - 類方法
- Java - 方法
- Java - 變數作用域
- Java - 建構函式
- Java - 訪問修飾符
- Java - 繼承
- Java - 聚合
- Java - 多型
- Java - 重寫
- Java - 方法過載
- Java - 動態繫結
- Java - 靜態繫結
- Java - 例項初始化塊
- Java - 抽象
- Java - 封裝
- Java - 介面
- Java - 包
- Java - 內部類
- Java - 靜態類
- Java - 匿名類
- Java - 單例類
- Java - 包裝類
- Java - 列舉
- Java - 列舉建構函式
- Java - 列舉字串
Java 內建類
Java 檔案處理
Java 錯誤和異常
- Java - 異常
- Java - try-catch 塊
- Java - try-with-resources
- Java - 多重捕獲塊
- Java - 巢狀 try 塊
- Java - Finally 塊
- Java - throw 異常
- Java - 異常傳播
- Java - 內建異常
- Java - 自定義異常
Java 多執行緒
- Java - 多執行緒
- Java - 執行緒生命週期
- Java - 建立執行緒
- Java - 啟動執行緒
- Java - 執行緒連線
- Java - 執行緒命名
- Java - 執行緒排程器
- Java - 執行緒池
- Java - 主執行緒
- Java - 執行緒優先順序
- Java - 守護執行緒
- Java - 執行緒組
- Java - 關閉鉤子
Java 同步
Java 網路
- Java - 網路
- Java - 套接字程式設計
- Java - URL 處理
- Java - URL 類
- Java - URLConnection 類
- Java - HttpURLConnection 類
- Java - Socket 類
- Java - 泛型
Java 集合
Java 介面
Java 資料結構
Java 集合演算法
高階 Java
- Java - 命令列引數
- Java - Lambda 表示式
- Java - 傳送電子郵件
- Java - Applet 基礎
- Java - Javadoc 註釋
- Java - 自動裝箱和拆箱
- Java - 檔案不匹配方法
- Java - REPL (JShell)
- Java - 多版本 Jar 檔案
- Java - 私有介面方法
- Java - 內部類菱形運算子
- Java - 多解析度影像 API
- Java - 集合工廠方法
- Java - 模組系統
- Java - Nashorn JavaScript
- Java - Optional 類
- Java - 方法引用
- Java - 函式式介面
- Java - 預設方法
- Java - Base64 編碼解碼
- Java - Switch 表示式
- Java - Teeing 收集器
- Java - 微基準測試
- Java - 文字塊
- Java - 動態 CDS 存檔
- Java - Z 垃圾收集器 (ZGC)
- Java - 空指標異常
- Java - 打包工具
- Java - 密封類
- Java - 記錄類
- Java - 隱藏類
- Java - 模式匹配
- Java - 緊湊數字格式化
- Java - 垃圾回收
- Java - JIT 編譯器
Java 雜項
- Java - 遞迴
- Java - 正則表示式
- Java - 序列化
- Java - 字串
- Java - 程序 API 改進
- Java - 流 API 改進
- Java - 增強的 @Deprecated 註解
- Java - CompletableFuture API 改進
- Java - 流
- Java - 日期時間 API
- Java 8 - 新特性
- Java 9 - 新特性
- Java 10 - 新特性
- Java 11 - 新特性
- Java 12 - 新特性
- Java 13 - 新特性
- Java 14 - 新特性
- Java 15 - 新特性
- Java 16 - 新特性
Java API 和框架
Java 類引用
- Java - Scanner
- Java - 陣列
- Java - 字串
- Java - Date
- Java - ArrayList
- Java - Vector
- Java - Stack
- Java - PriorityQueue
- Java - LinkedList
- Java - ArrayDeque
- Java - HashMap
- Java - LinkedHashMap
- Java - WeakHashMap
- Java - EnumMap
- Java - TreeMap
- Java - IdentityHashMap
- Java - HashSet
- Java - EnumSet
- Java - LinkedHashSet
- Java - TreeSet
- Java - BitSet
- Java - Dictionary
- Java - Hashtable
- Java - Properties
- Java - Collection
- Java - Array
Java 有用資源
JDK、JRE 和 JVM 之間的區別
JDK、JRE 和 JVM 三者是相互依存的。JDK 是 Java 開發工具包,主要用於開發人員開發基於 Java 的應用程式。JRE 是 Java 執行時環境,Java 程式在其中執行。JDK 將 JRE 作為其不可分割的一部分。JRE 也可以單獨安裝在不需要進行開發的系統上,我們只需要執行基於 Java 的應用程式或執行 Java 程式即可。JVM 是一個規範,可以有不同的實現,只要它們符合規範即可。規範可以在以下連結中找到:https://docs.oracle.com。JRE 是 JVM 的一種實現。
什麼是 JDK?
JDK 是 Java Development Kit 的縮寫,它包含編譯、除錯和執行 Java 程式所需的所有工具、可執行檔案和二進位制檔案。JDK 是平臺相關的,即 Windows、Mac 和 Unix 系統具有單獨的安裝程式。JDK 包含 JVM 和 JRE,並完全負責程式碼執行。它是 JDK 的版本,代表了 Java 的版本。
什麼是 JRE?
JRE 是 Java Runtime Environment 的縮寫,它是 JVM 的實現,即 JVM 中定義的規範被實現並建立了相應的程式碼執行環境。JRE 主要包含 Java 二進位制檔案和其他執行程式的類,例如物理存在的 JVM。除了 Java 二進位制檔案外,JRE 還包含各種部署技術、與執行程式碼互動的使用者介面、一些用於不同功能的基本庫以及語言和 基於實用程式的庫。
什麼是 JVM?
JVM 是 Java Virtual Machine 的縮寫,它是一個規範,提供了一個可以執行 Java 位元組碼的執行時環境,即它是抽象的,其實現獨立於演算法的選擇,並由 Sun 和其他公司提供。JVM 負責將位元組碼轉換為特定於機器的程式碼。它還可以執行用其他語言編寫並編譯成 Java 位元組碼的程式。JVM 執行以下任務:載入程式碼、驗證程式碼、執行程式碼以及提供執行時環境。
JDK、JRE 和 JVM 之間的區別
以下是 JDK、JRE 和 JVM 之間的重要區別:
序號 | 關鍵 | JDK | JRE | JVM |
---|---|---|---|---|
1 | 定義 | JDK(Java 開發工具包)是一個軟體開發工具包,用於開發 Java 應用程式。除了 JRE 之外,JDK 還包含許多開發工具(編譯器、JavaDoc、Java 偵錯程式等)。 | JRE(Java 執行時環境)是 JVM 的實現,被定義為一個軟體包,它提供了 Java 類庫以及 Java 虛擬機器 (JVM) 和其他元件來執行用 Java 程式語言編寫的應用程式。 | JVM(Java 虛擬機器)是一個抽象的機器,它是平臺相關的,具有三個概念:規範,描述 JVM 實現要求的文件;實現,滿足 JVM 要求的計算機程式;例項,執行 Java 位元組碼的實現,提供執行 Java 位元組碼的執行時環境。 |
2 | 主要功能 | JDK 主要用於程式碼執行,其主要功能是開發。 | 另一方面,JRE 主要負責建立程式碼執行環境。 | 另一方面,JVM 指定所有實現,並負責向 JRE 提供這些實現。 |
3 | 平臺獨立性 | JDK 是平臺相關的,即不同的平臺需要不同的 JDK。 | 與 JDK 一樣,JRE 也是平臺相關的。 | JVM 是平臺無關的。 |
4 | 工具 | 由於 JDK 負責主要的開發工作,因此它包含用於開發、除錯和監控 Java 應用程式的工具。 | 另一方面,JRE 不包含編譯器或偵錯程式等工具。相反,它包含 JVM 執行程式所需的類庫和其他支援檔案。 | JVM 不包含軟體開發工具。 |
5 | 實現 | JDK = Java 執行時環境 (JRE) + 開發工具 | JRE = Java 虛擬機器 (JVM) + 執行應用程式的庫 | JVM = 僅用於執行 Java 位元組碼的執行時環境。 |