鍍金池/ 教程/ Java/ Java虛擬機內(nèi)部體系結(jié)構(gòu)
Java for循環(huán)
Java接口
Java是什么?
Java命名約定
java中方法重載和方法重寫的區(qū)別
Java運算符
Java抽象類
Java快速入門
Java實例初始化程序塊
Java靜態(tài)綁定和動態(tài)綁定
Java do-while循環(huán)
Java對象克隆
Java Object類
Java聚合
Java繼承
Java this關(guān)鍵字
Java虛擬機內(nèi)部體系結(jié)構(gòu)
Java構(gòu)造器(構(gòu)造方法)
Eclipse安裝和配置
Java多態(tài)
Java方法重載
Java while循環(huán)
Java教程
Java按值調(diào)用和引用調(diào)用
Java strictfp關(guān)鍵字
Java封裝
Java語言特點
Java數(shù)組
Java instanceof運算符
Java包裝類
Java命令行參數(shù)
Java包
Java面向?qū)ο螅∣OP)概念
簡單Java程序
Java基礎(chǔ)實例程序
Java對象和類
Java continue語句
Java抽象類和接口的區(qū)別
C++ VS Java比較
Java if/else語句
Java switch語句
Java歷史
Java變量和數(shù)據(jù)類型
安裝Java環(huán)境(Linux)
Java JDK安裝和配置
Hello Java程序的內(nèi)部細(xì)節(jié)
Java break語句
Java方法重寫
Java Unicode編碼系統(tǒng)
怎么樣開始學(xué)習(xí)Java編程?
對象和類之間的區(qū)別
Java訪問修飾符
Java super關(guān)鍵字
Java注釋
JDK,JRE和JVM之間的區(qū)別
Java final關(guān)鍵字
Java static關(guān)鍵字

Java虛擬機內(nèi)部體系結(jié)構(gòu)

JVM(Java虛擬機)是一個抽象機器。 它是一個提供可以執(zhí)行Java字節(jié)碼的運行時環(huán)境的規(guī)范。JVM可用于許多硬件和軟件平臺(即JVM是平臺相關(guān)的)。

什么是JVM?

JVM(Java虛擬機)是:

  1. 指定Java虛擬機的工作的規(guī)范。 但實現(xiàn)提供程序是獨立的選擇算法。 其實現(xiàn)是由Sun和其他公司提供。

  2. 它的實現(xiàn)被稱為JRE(Java運行時環(huán)境)。

  3. 運行時實例只要在命令提示符上編寫java命令來運行java類,就會創(chuàng)建JVM的實例。

JVM(Java虛擬機)能做什么?

JVM執(zhí)行以下操作:

  • 加載代碼
  • 驗證代碼
  • 執(zhí)行代碼
  • 提供運行時環(huán)境

JVM提供了以下定義:

  • 內(nèi)存區(qū)
  • 類文件格式
  • 寄存器集合
  • 垃圾收集堆
  • 致命錯誤報告等

JVM(Java虛擬機)內(nèi)部體系結(jié)構(gòu)

下面讓我們來了解JVM的內(nèi)部架構(gòu)。它包含類加載器,內(nèi)存區(qū)域,執(zhí)行引擎等。

1)類加載器

Classloader是JVM的一個子系統(tǒng),用于加載類文件。

2)類(方法)區(qū)域

類(方法)區(qū)域存儲每個類結(jié)構(gòu),例如運行時常量池,字段和方法數(shù)據(jù),方法的代碼。

3)堆

它是分配對象的運行時數(shù)據(jù)區(qū)。

4)堆棧
Java堆棧存儲幀。它保存局部變量和部分結(jié)果,并在方法調(diào)用和返回中起作用。
每個線程都有一個私有JVM堆棧,同時創(chuàng)建線程。每次調(diào)用方法時都會創(chuàng)建一個新的框架。 框架在其方法調(diào)用完成時被銷毀。

5)程序計數(shù)器寄存器

PC(程序計數(shù)器)寄存器。 它包含當(dāng)前正在執(zhí)行的Java虛擬機指令的地址。

6)本地方法堆棧

它包含應(yīng)用程序中使用的所有本地方法。

7)執(zhí)行引擎

執(zhí)行引擎包含:

  1. 虛擬處理器
  2. 解釋器:讀取字節(jié)碼流,然后執(zhí)行指令。
  3. 即時(JIT)編譯器:它用于提高性能,JIT編譯的同時有類似字節(jié)代碼部分的功能,從而減少編譯所需的時間。編譯器是指從Java虛擬機(JVM)的指令集到特定CPU的指令集的轉(zhuǎn)換器。

上一篇:Java方法重載下一篇:Java運算符