自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊一聊關(guān)于JDK、JRE 和 JVM 的區(qū)別

開發(fā)
JDK包括 Java 運行時環(huán)境 (JRE)、解釋器/加載器 (Java)、編譯器(javac)、歸檔器 (jar)、文檔生成器 (Javadoc) 以及 Java 開發(fā)所需的其他工具。

Java Development Kit (JDK ) 是用于開發(fā) Java 應用程序和小程序的軟件開發(fā)環(huán)境。它包括 Java 運行時環(huán)境 (JRE)、解釋器/加載器 (Java)、編譯器(javac)、歸檔器 (jar)、文檔生成器 (Javadoc) 以及 Java 開發(fā)所需的其他工具。

現(xiàn)在我們需要一個環(huán)境來運行我們的程序。此后,JRE代表“Java 運行時環(huán)境”,也可以寫成“Java RTE”。Java 運行時環(huán)境提供了執(zhí)行 Java 應用程序的最低要求;它由Java 虛擬機 (JVM)、核心類和支持文件組成。

現(xiàn)在讓我們討論一下JVM,它代表了 java 虛擬機。如下:

  • 指定 Java 虛擬機工作的規(guī)范。但實現(xiàn)提供者獨立選擇算法。它的實現(xiàn)由 Sun 和其他公司提供。
  • 實現(xiàn)是滿足 JVM 規(guī)范要求的計算機程序。
  • 運行時實例每當您在命令提示符下編寫 java 命令以運行 java 類時,就會創(chuàng)建一個 JVM 實例。

在繼續(xù)討論 JDK、JRE 和 JVM 之間的區(qū)別之前,讓我們先簡要討論它們,并將它們與下面提出的圖像相互關(guān)聯(lián)。

不用感到困惑,因為我們將一一討論它們。

(1) JDK(Java Development Kit)是一個提供開發(fā)和執(zhí)行(運行) Java程序環(huán)境的工具包。JDK 是一個工具包(或包),包括兩個東西

  • 開發(fā)工具(提供開發(fā)Java程序的環(huán)境)
  • JRE(執(zhí)行您的 java 程序)。

(2) JRE(Java Runtime Environment)是一個安裝包,它提供了一個環(huán)境,只在你的機器上運行(而不是開發(fā)) java程序(或應用程序)。JRE 僅供那些只想運行作為系統(tǒng)最終用戶的 Java 程序的人使用。

(3) JVM(Java 虛擬機) 是 JDK 和 JRE 中非常重要的一部分,因為它包含或內(nèi)置在兩者中。無論你使用 JRE 還是 JDK 運行的 Java 程序都會進入 JVM,而 JVM 負責逐行執(zhí)行 Java 程序,因此它也被稱為解釋器。

現(xiàn)在讓我們討論 JRE 的組件,以了解它的重要性并了解它的實際工作原理。為此,讓我們討論組件。

JRE的組件如下:

  • 部署技術(shù),包括部署、Java Web Start 和 Java 插件。
  • 用戶界面工具包,包括抽象窗口工具包 (AWT)、Swing、Java 2D、可訪問性、圖像 I/O、打印服務(wù)、聲音、拖放( DnD)和輸入法。
  • 集成庫,包括接口定義語言 (IDL)、Java 數(shù)據(jù)庫連接 (JDBC)、Java 命名和目錄接口 (JNDI)、遠程方法調(diào)用 (RMI)、基于 Internet Inter-Orb 協(xié)議的遠程方法調(diào)用 (RMI-IIOP)和腳本。
  • 其他基礎(chǔ)庫,包括國際支持、輸入/輸出 (I/O)、擴展機制、Beans、Java 管理擴展 (JMX)、Java 本機接口 (JNI)、數(shù)學、網(wǎng)絡(luò)、覆蓋機制、安全性、序列化和Java XML 處理 (XML JAXP)。
  • Lang 和 util 基礎(chǔ)庫,包括lang 和 util、管理、版本控制、zip、儀器、反射、集合、并發(fā)實用程序、Java 存檔 (JAR)、日志記錄、首選項 API、參考對象和正則表達式。
  • Java 虛擬機 (JVM),包括Java HotSpot 客戶端和服務(wù)器虛擬機。

在對組件有足夠的了解之后,現(xiàn)在讓我們討論一下 JRE 的工作原理。為了理解 JRE 是如何工作的,讓我們考慮下面的一個例子:

考慮一個保存為 ‘ Example.java’的 java 源文件。該文件被編譯成一組字節(jié)碼,存儲在“ .class ”文件中。這里將是“
Example.class ”。

注意:從上面可以解釋編譯時的媒體操作計算。

以下操作在運行時發(fā)生,如下所示:

(1) 類加載器

(2) 字節(jié)碼驗證器

(3) 口譯員

  • 執(zhí)行字節(jié)碼
  • 對底層硬件進行適當?shù)恼{(diào)用

現(xiàn)在讓我們簡要討論一下 JVM 是如何工作的。如下:

JVM 在 Java 程序運行時成為 JRE 的一個實例。它被廣泛稱為運行時解釋器。JVM 在很大程度上有助于從使用 JDK 程序庫的程序員抽象內(nèi)部實現(xiàn)。

它主要負責三項活動。 

  • Loading
  • Linking
  • Initialization

同樣,現(xiàn)在讓我們討論一下 JRE 的工作原理,如下所示:

  • JVM(Java 虛擬機)充當運行 Java 應用程序的運行時引擎。JVM 是實際調(diào)用java 代碼中存在的main方法的那個。JVM 是 JRE(Java 運行時環(huán)境)的一部分。
  • Java 應用程序稱為 WORA(一次編寫,隨處運行)。這意味著程序員可以在一個系統(tǒng)上開發(fā) Java 代碼,并且可以期望它在任何其他支持 Java 的系統(tǒng)上運行而無需任何調(diào)整。由于 JVM,這一切皆有可能。
  • 當我們編譯文件時*.java,Java 編譯器會生成與*.java文件中存在的相同類名的*.class文件(包含字節(jié)碼) 。當我們運行這個*.class文件時,它會進入各個步驟。這些步驟一起描述了整個 JVM。
責任編輯:趙寧寧 來源: Linux迷
相關(guān)推薦

2010-09-25 14:58:12

JVMJDKJRE

2020-11-10 07:46:58

函數(shù)printf 數(shù)據(jù)

2021-05-30 19:01:59

工具IAST網(wǎng)絡(luò)

2020-05-12 22:24:44

JVM系統(tǒng)加載器

2023-03-03 12:37:50

JavaJVM內(nèi)存溢出

2020-03-06 15:11:21

進程線程Web

2023-06-02 07:45:39

2009-07-08 17:59:51

JDK JRE

2023-07-06 13:56:14

微軟Skype

2017-12-26 10:19:14

大數(shù)據(jù)問題缺陷

2020-09-08 06:54:29

Java Gradle語言

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON

2024-03-28 09:02:25

PythonGetattr工具

2022-05-18 16:35:43

Redis內(nèi)存運維

2021-08-01 09:55:57

Netty時間輪中間件

2023-09-27 16:39:38

2024-10-28 21:02:36

消息框應用程序

2021-08-29 18:34:44

編譯V8C++
點贊
收藏

51CTO技術(shù)棧公眾號