更新時間:2021-05-13 16:20:23 來源:動力節點 瀏覽1301次
虛擬機是一種抽象化的計算機,通過在實際的計算機上仿真模擬各種計算機功能來實現的。Java虛擬機有自己完善的硬體架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。Java虛擬機屏蔽了與具體操作系統平臺相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。
所謂的Java虛擬機,就是一臺虛擬的機器。它是一款軟件,用來執行一系列虛擬計算機指令,大體上虛擬機可以分為系統虛擬機和程序虛擬機。visual Box、VMare就屬于系統虛擬機。他們完全是對物理計算機的仿真,提供一個可運行完整操作系統的軟件平臺。而Java虛擬機就是典型程序虛擬機,它專門為執行單個計算機程序而設計,在Java虛擬機中執行的指令我們稱之為Java字節碼指令。Java發展到今天,出現了很多虛擬機,最初sun使用的叫Classic的Java虛擬機,到現在使用最廣泛的是HotSpot虛擬機,除了sun以外還有BEA的JRockit,目前JRockit和HotSpot都被甲骨文公司收入旗下,大有整合的趨勢。
Java虛擬機的基本結構
1. 類加載子系統:負責從文件系統或者網絡中加載class信息,加載的信息放在一起稱之為方法去的內存空間。
2. 方法區:就是存放類信息.常量信息.常量池信息.字符串字面量和數字常量等。
3. Java堆:在Java虛擬機啟動的時候建立Java堆,它是Java程序最主要的內存工作區域,幾乎所有的對象實例都存放在Java堆中,堆空間是所有線程共享的。
4. 直接內存:Java的NIO庫允許Java程序使用直接內存,從而提高性能,通常直接內存速度會優于Java堆。讀寫頻繁的場合可能會考慮使用。
5. Java棧:每個虛擬機線程都有一個私有的棧,一個線程的Java棧在線程創建的時候被創建,Java棧中保存著局部變量.方法參數.還有Java的調用方法和返回值等。
6. 本地方法棧:與Java棧很類似,最大不同是本地方法棧用于本地方法調用。Java虛擬機允許Java直接調用本地方法(通常本地方法為C語言編寫)
7. 垃圾回收系統:是Java的核心,也是必不可少的,Java有一套自己進行垃圾清理的機制,開發者無需手動清理。
8. PC寄存器:是每個線程私有的空間,Java虛擬機會為每個線程創建PC寄存器,在任意時刻,一個Java線程總是在執行一個方法,這個方法被稱為當前方法,如果當前方法不是本地方法,PC寄存器就會執行當前正在被執行的指令,如果是本地方法,則PC寄存器的值為undefined。寄存器存放如當前執行環境指針.程序計數器.操作棧指針.計算的變量指針等信息。
9. 執行引擎:虛擬機最核心的就是執行引擎了,它負責執行虛擬機的字節碼。一般用戶先編譯成機器碼后執行。
以上就是動力節點Java培訓機構的小編針對“什么是Java虛擬機”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習