首頁  >  文章  >  Java  >  什麼是java虛擬機器? JVM的簡單介紹

什麼是java虛擬機器? JVM的簡單介紹

青灯夜游
青灯夜游原創
2018-11-21 16:52:4823150瀏覽

本篇文章帶給大家的內容是java中什麼是JVM? Java虛擬機的簡單介紹,讓大家了解JVM可以做什麼,JVM的作用。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。

什麼是java虛擬機器? JVM的簡單介紹

什麼是JVM?

Java虛擬機(JVM)是​​運行Java字節碼的虛擬機,它是java程式語言的核心。當我們執行程式時,JVM負責將位元組代碼轉換為特定於機器的程式碼。 JVM也依賴平台,並提供核心Java函數,如記憶體管理,垃圾收集,安全性等。

JVM被稱為虛擬,因為它提供的介面不依賴底層作業系統和機器硬體。這種與硬體和作業系統的獨立性使得java程式可以在任何地方進行一次寫入。

在現實世界中,JVM是一種規範,它提供了一個可以執行Java字節碼的執行環境。

JVM可以做什麼?

JVM執行以下操作:

1、載入程式碼

2、驗證程式碼

3、執行程式碼

3、提供執行環境

JVM提供以下定義:

1、記憶區

2、類別檔案格式

3、註冊集

4、垃圾收集堆

#5、致命錯誤報告等

JVM架構

讓我們來了解JVM的內部架構。它包含有類別載入器,記憶體區域,執行引擎等。

什麼是java虛擬機器? JVM的簡單介紹

1、類別載入器

#Classloader是JVM的子系統,用來載入類別檔案。每當我們運行java程式時,它首先由類別載入器載入。 Java中有三個內建的類別載入器。

1)、Bootstrap ClassLoader:這是第一個類別擴展,它是Extension類別載入器的超類別。它載入rt.jar文件,該文件包含Java Standard Edition的所有類文件,如java.lang包類,java.net包類,java.util包類,java.io包類,java.sql包類等。

2)、Extension ClassLoader:這是Bootstrap的子類別載入器和System類別載入器的父類別載入器。它遍歷位於$ JAVA_HOME / jre / lib / ext目錄中的jar檔。

3)、System / Application ClassLoader:這是Extension類別載入器的子類別載入器。它從類路徑載入類文件。預設情況下,classpath設定為目前目錄。您可以使用“-cp”或“-classpath”開關來變更類別路徑。它也被稱為Application類別載入器。

2、類別(方法)區域

Method區域儲存每個類別結構,例如運行時常數池,欄位和方法數據,方法的程式碼。

3、堆

Heap是分配物件的運行時資料區域。

4、堆疊

Java 堆疊儲存框架。 Stack包含局部變數和部分結果,並在方法呼叫和返回中起作用。

每個執行緒都有一個私有JVM堆疊,與執行緒同時建立。

每次呼叫方法時都會建立一個新幀。當方法呼叫完成時,框架將被銷毀。

5、程式計數器暫存器(Program Counter Register)

#PC(Program Counter)暫存器包含目前正在執行的Java虛擬機器指令的位址。

6、原生方法堆疊(Native Method Stack)

它包含應用程式中使用的所有本機方法。

7、執行引擎(Execution Engine)

它包含:

1)、虛擬處理器

2)、解釋器:讀取字節碼流然後執行指令。

3)、即時(JIT)編譯器:用於提高效能。 JIT同時編譯具有類似功能的部分位元組程式碼,因此減少了編譯所需的時間。這裡,術語「編譯器」指的是從Java虛擬機器(JVM)的指令集到特定CPU的指令集的轉換器。

8、Java本機介面(Java Native Interface)

Java Native Interface(JNI)是一個框架,它提供了一個接口,用於與另一種語言(如C,C ,Assembly等)編寫的另一個應用程式進行通信.Java使用JNI框架將輸出發送到控制台或與OS庫交互。

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多相關影片教學,請造訪:Java教學

以上是什麼是java虛擬機器? JVM的簡單介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn