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

現(xiàn)在讓我們討論一下JVM,它代表了 java 虛擬機(jī)。如下:
- 指定 Java 虛擬機(jī)工作的規(guī)范。但實(shí)現(xiàn)提供者獨(dú)立選擇算法。它的實(shí)現(xiàn)由 Sun 和其他公司提供。
- 實(shí)現(xiàn)是滿足 JVM 規(guī)范要求的計(jì)算機(jī)程序。
- 運(yùn)行時(shí)實(shí)例每當(dāng)您在命令提示符下編寫 java 命令以運(yùn)行 java 類時(shí),就會(huì)創(chuàng)建一個(gè) JVM 實(shí)例。
在繼續(xù)討論 JDK、JRE 和 JVM 之間的區(qū)別之前,讓我們先簡(jiǎn)要討論它們,并將它們與下面提出的圖像相互關(guān)聯(lián)。
不用感到困惑,因?yàn)槲覀儗⒁灰挥懻撍鼈儭?/p>
(1) JDK(Java Development Kit)是一個(gè)提供開發(fā)和執(zhí)行(運(yùn)行) Java程序環(huán)境的工具包。JDK 是一個(gè)工具包(或包),包括兩個(gè)東西
- 開發(fā)工具(提供開發(fā)Java程序的環(huán)境)
- JRE(執(zhí)行您的 java 程序)。
(2) JRE(Java Runtime Environment)是一個(gè)安裝包,它提供了一個(gè)環(huán)境,只在你的機(jī)器上運(yùn)行(而不是開發(fā)) java程序(或應(yīng)用程序)。JRE 僅供那些只想運(yùn)行作為系統(tǒng)最終用戶的 Java 程序的人使用。
(3) JVM(Java 虛擬機(jī)) 是 JDK 和 JRE 中非常重要的一部分,因?yàn)樗騼?nèi)置在兩者中。無論你使用 JRE 還是 JDK 運(yùn)行的 Java 程序都會(huì)進(jìn)入 JVM,而 JVM 負(fù)責(zé)逐行執(zhí)行 Java 程序,因此它也被稱為解釋器。
現(xiàn)在讓我們討論 JRE 的組件,以了解它的重要性并了解它的實(shí)際工作原理。為此,讓我們討論組件。
JRE的組件如下:
- 部署技術(shù),包括部署、Java Web Start 和 Java 插件。
- 用戶界面工具包,包括抽象窗口工具包 (AWT)、Swing、Java 2D、可訪問性、圖像 I/O、打印服務(wù)、聲音、拖放( DnD)和輸入法。
- 集成庫,包括接口定義語言 (IDL)、Java 數(shù)據(jù)庫連接 (JDBC)、Java 命名和目錄接口 (JNDI)、遠(yuǎn)程方法調(diào)用 (RMI)、基于 Internet Inter-Orb 協(xié)議的遠(yuǎn)程方法調(diào)用 (RMI-IIOP)和腳本。
- 其他基礎(chǔ)庫,包括國(guó)際支持、輸入/輸出 (I/O)、擴(kuò)展機(jī)制、Beans、Java 管理擴(kuò)展 (JMX)、Java 本機(jī)接口 (JNI)、數(shù)學(xué)、網(wǎng)絡(luò)、覆蓋機(jī)制、安全性、序列化和Java XML 處理 (XML JAXP)。
- Lang 和 util 基礎(chǔ)庫,包括lang 和 util、管理、版本控制、zip、儀器、反射、集合、并發(fā)實(shí)用程序、Java 存檔 (JAR)、日志記錄、首選項(xiàng) API、參考對(duì)象和正則表達(dá)式。
- Java 虛擬機(jī) (JVM),包括Java HotSpot 客戶端和服務(wù)器虛擬機(jī)。
在對(duì)組件有足夠的了解之后,現(xiàn)在讓我們討論一下 JRE 的工作原理。為了理解 JRE 是如何工作的,讓我們考慮下面的一個(gè)例子:
考慮一個(gè)保存為 ‘ Example.java’的 java 源文件。該文件被編譯成一組字節(jié)碼,存儲(chǔ)在“ .class ”文件中。這里將是“
Example.class ”。注意:從上面可以解釋編譯時(shí)的媒體操作計(jì)算。
以下操作在運(yùn)行時(shí)發(fā)生,如下所示:
(1) 類加載器
(2) 字節(jié)碼驗(yàn)證器
(3) 口譯員
- 執(zhí)行字節(jié)碼
- 對(duì)底層硬件進(jìn)行適當(dāng)?shù)恼{(diào)用
現(xiàn)在讓我們簡(jiǎn)要討論一下 JVM 是如何工作的。如下:
JVM 在 Java 程序運(yùn)行時(shí)成為 JRE 的一個(gè)實(shí)例。它被廣泛稱為運(yùn)行時(shí)解釋器。JVM 在很大程度上有助于從使用 JDK 程序庫的程序員抽象內(nèi)部實(shí)現(xiàn)。
它主要負(fù)責(zé)三項(xiàng)活動(dòng)。
- Loading
- Linking
- Initialization
同樣,現(xiàn)在讓我們討論一下 JRE 的工作原理,如下所示:
- JVM(Java 虛擬機(jī))充當(dāng)運(yùn)行 Java 應(yīng)用程序的運(yùn)行時(shí)引擎。JVM 是實(shí)際調(diào)用java 代碼中存在的main方法的那個(gè)。JVM 是 JRE(Java 運(yùn)行時(shí)環(huán)境)的一部分。
- Java 應(yīng)用程序稱為 WORA(一次編寫,隨處運(yùn)行)。這意味著程序員可以在一個(gè)系統(tǒng)上開發(fā) Java 代碼,并且可以期望它在任何其他支持 Java 的系統(tǒng)上運(yùn)行而無需任何調(diào)整。由于 JVM,這一切皆有可能。
- 當(dāng)我們編譯文件時(shí)*.java,Java 編譯器會(huì)生成與*.java文件中存在的相同類名的*.class文件(包含字節(jié)碼) 。當(dāng)我們運(yùn)行這個(gè)*.class文件時(shí),它會(huì)進(jìn)入各個(gè)步驟。這些步驟一起描述了整個(gè) JVM。
網(wǎng)頁名稱:聊一聊關(guān)于JDK、JRE 和 JVM 的區(qū)別
標(biāo)題來源:http://www.dlmjj.cn/article/cooehjc.html


咨詢
建站咨詢
