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

JDK、JRE 和 JVM 有什么用,它們是怎樣運(yùn)行的

開發(fā) 前端
JRE 有一個(gè) JVM 實(shí)例、庫類和開發(fā)工具。編寫和編譯 Java 代碼后,編譯器會(huì)生成一個(gè)包含字節(jié)碼的類文件。

JDK如何運(yùn)作?

JDK 功能

以下是JDK的重要組件:

  • JDK 和 JRE:程序員通過使用JDK 創(chuàng)建由 JRE 運(yùn)行的 Java 程序,其中包括 JVM 和類庫。
  • 類庫:是一組可動(dòng)態(tài)加載的庫,Java 程序在運(yùn)行時(shí)調(diào)用。
  • 編譯器:是一個(gè)Java程序,開發(fā)人員的文本文件通過編譯器編譯成Java類文件。編譯器給出的常見輸出形式,包含Java字節(jié)碼。在 Java 中,主要的編譯器是 Javac。
  • 調(diào)試器:調(diào)試器是一個(gè) Java 程序,開發(fā)人員通過調(diào)試器測試和調(diào)試 Java 程序。
  • JavaDoc: JavaDoc 是 Sun Microsystems 為 Java 制作的文檔。JavaDoc 可用于從源程序生成 HTML 文件中的 API 文檔

JRE如何運(yùn)作?

JRE 功能

JRE 有一個(gè) JVM 實(shí)例、庫類和開發(fā)工具。編寫和編譯 Java 代碼后,編譯器會(huì)生成一個(gè)包含字節(jié)碼的類文件。

以下是 JRE 的重要組成部分:

  • 類加載器:類加載器加載運(yùn)行 Java 程序所需的各種類。JVM 使用三個(gè)類加載器,稱為引導(dǎo)類加載器、擴(kuò)展類加載器和系統(tǒng)類加載器。
  • 字節(jié)碼驗(yàn)證器:字節(jié)碼驗(yàn)證器驗(yàn)證字節(jié)碼,使代碼不會(huì)干擾解釋器。
  • 解釋器:一旦加載類并驗(yàn)證代碼,解釋器就會(huì)逐行讀取代碼。
  • 運(yùn)行時(shí)間:運(yùn)行時(shí)間是主要用于編程的系統(tǒng),用于描述特定程序運(yùn)行的時(shí)間段。
  • 硬件:一旦你編譯了 Java 本機(jī)代碼,它就會(huì)在特定的硬件平臺(tái)上運(yùn)行。

這樣,Java 程序就在 JRE 中運(yùn)行。

JVM如何運(yùn)作?

JVM 功能

以下是 JVM 的重要組件:

1) 類加載器

類加載器是用于加載類文件的子系統(tǒng)。它執(zhí)行三個(gè)主要功能:加載、鏈接和初始化。

2) 方法區(qū)

JVM 方法區(qū)存儲(chǔ)類的結(jié)構(gòu),如元數(shù)據(jù)、Java 方法的代碼和常量運(yùn)行時(shí)池。

3) 堆

所有對象、數(shù)組和實(shí)例變量都存儲(chǔ)在堆中。此內(nèi)存在多個(gè)線程之間共享。

4)JVM語言棧

Java 語言堆棧存儲(chǔ)局部變量及其部分結(jié)果。每個(gè)線程都有自己的 JVM 語言堆棧,在創(chuàng)建線程時(shí)同時(shí)創(chuàng)建。調(diào)用方法時(shí)會(huì)創(chuàng)建一個(gè)新框架,并在方法調(diào)用過程完成時(shí)將其刪除。

5) PC 寄存器

PC 寄存器存儲(chǔ)當(dāng)前正在執(zhí)行的 Java 虛擬機(jī)指令的地址。在 Java 中,每個(gè)線程都有其單獨(dú)的 PC 寄存器。

6) 原生方法棧

本機(jī)方法棧保存本機(jī)代碼的指令依賴于本機(jī)庫。它在本機(jī)堆上分配內(nèi)存或使用任何類型的堆棧。

7) 執(zhí)行引擎

它是一種用于測試軟件、硬件或完整系統(tǒng)的軟件。測試執(zhí)行引擎從不攜帶任何關(guān)于被測產(chǎn)品的信息。

8) 原生方法API

本機(jī)方法接口是一個(gè)編程框架。它允許在 JVM 中運(yùn)行的 Java 代碼由庫和本機(jī)應(yīng)用程序調(diào)用。

9) 原生API庫

本機(jī)庫是執(zhí)行引擎所需的本機(jī)庫(C、C++)的集合。

JDK、JRE 和 JVM 的區(qū)別

以下是 JDK、JRE 和 JVM 之間的主要區(qū)別:

JDK

JRE

虛擬機(jī)

JDK 英文全稱是 Java Development Kit。

JRE 英文全稱是 Java 運(yùn)行時(shí)環(huán)境。

JVM英文全稱是Java虛擬機(jī)。

JDK 是一個(gè)用 Java 開發(fā)應(yīng)用程序的軟件開發(fā)工具包。

它是一個(gè)軟件包,為 Java 類庫提供運(yùn)行 Java 代碼所需的組件。

JVM 執(zhí)行 Java 字節(jié)碼并提供執(zhí)行它的環(huán)境。

JDK 依賴于平臺(tái)。

JRE 也依賴于平臺(tái)。

JVM 高度依賴于平臺(tái)。

它包含用于開發(fā)、調(diào)試和監(jiān)控 Java 代碼的工具。

它包含 JVM 執(zhí)行程序所需的類庫和其他支持文件。

JVM 中不包含軟件開發(fā)工具。

它是 JRE 的超集

它是 JDK 的子集。

JVM 是 JRE 的子集。

JDK 使開發(fā)人員能夠創(chuàng)建可由 JRE 和 JVM 執(zhí)行和運(yùn)行的 Java 程序。

JRE 是創(chuàng)建 JVM 的 Java 部分。

它是執(zhí)行源代碼的 Java 平臺(tái)組件。

JDK 附帶安裝程序。

JRE 只包含執(zhí)行源代碼的環(huán)境。

JVM 捆綁在軟件 JDK 和 JRE 中。

JDK 附帶安裝程序。

JRE 只包含執(zhí)行源代碼的環(huán)境。

JVM 捆綁在軟件 JDK 和 JRE 中。


責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2010-09-25 14:58:12

JVMJDKJRE

2009-06-25 14:46:50

JDKJREJVM

2009-07-08 10:41:54

JDK JRE JVM

2022-06-27 08:24:34

JDKJavaJRE

2023-09-27 08:46:44

Java 技術(shù)編程語言

2009-07-08 18:07:58

jvm jre

2022-12-30 16:06:23

JDKJREJVM

2010-09-27 14:50:22

JDKJREJVM

2009-07-08 17:59:51

JDK JRE

2009-07-08 09:47:47

安裝JDKJREJVM

2010-09-26 14:32:34

JDKJREJVM

2021-07-26 08:29:03

Java SEJREJDK

2021-09-10 07:59:31

中斷鎖Java多線編程

2010-09-27 11:32:41

JVMJREJDK

2024-01-25 10:23:22

對象存儲(chǔ)存儲(chǔ)數(shù)據(jù)

2024-02-22 12:18:16

Python函數(shù)用法

2024-02-19 00:00:00

Python?starmap函數(shù)

2019-07-24 10:11:51

jdkjreJava

2022-02-16 22:37:00

流式SQLSQL數(shù)據(jù)庫

2021-02-18 07:55:27

數(shù)據(jù)湖存儲(chǔ)數(shù)據(jù)
點(diǎn)贊
收藏

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