深入理解Java虛擬機_動力節(jié)點Java學院整理-創(chuàng)新互聯

什么是Java虛擬機

創(chuàng)新互聯專注于網站建設|成都企業(yè)網站維護|優(yōu)化|托管以及網絡推廣,積累了大量的網站設計與制作經驗,為許多企業(yè)提供了網站定制設計服務,案例作品覆蓋自上料攪拌車等行業(yè)。能根據企業(yè)所處的行業(yè)與銷售的產品,結合品牌形象的塑造,量身策劃品質網站。

Java程序必須在虛擬機上運行。那么虛擬機到底是什么呢?先看網上搜索到的比較靠譜的解釋:

虛擬機是一種抽象化的計算機,通過在實際的計算機上仿真模擬各種計算機功能來實現的。Java虛擬機有自己完善的硬體架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。JVM屏蔽了與具體操作系統平臺相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。

這種解釋應該算是正確的,但是只描述了虛擬機的外部行為和功能,并沒有針對內部原理做出說明。一般情況下我們不需要知道虛擬機的運行原理,只要專注寫java代碼就可以了,這也正是虛擬機之所以存在的原因--屏蔽底層操作系統平臺的不同并且減少基于原生語言開發(fā)的復雜性,使java這門語言能夠跨各種平臺(只要虛擬機廠商在特定平臺上實現了虛擬機),并且簡單易用。這些都是虛擬機的外部特性,但是從這些信息來解釋虛擬機,未免太籠統了,無法讓我們知道內部原理。

從進程的角度解釋JVM

讓我們嘗試從操作系統的層面來理解虛擬機。我們知道,虛擬機是運行在操作系統之中的,那么什么東西才能在操作系統中運行呢?當然是進程,因為進程是操作系統中的執(zhí)行單位??梢赃@樣理解,當它在運行的時候,它就是一個操作系統中的進程實例,當它沒有在運行時(作為可執(zhí)行文件存放于文件系統中),可以把它叫做程序。

對命令行比較熟悉的同學,都知道其實一個命令對應一個可執(zhí)行的二進制文件,當敲下這個命令并且回車后,就會創(chuàng)建一個進程,加載對應的可執(zhí)行文件到進程的地址空間中,并且執(zhí)行其中的指令。下面對比C語言和Java語言的HelloWorld程序來說明問題。

首先編寫C語言版的HelloWorld程序。

#include <stdio.h> 
#include <stdlib.h> 
int main(void) { 
  printf("hello world\n"); 
  return 0; 
} 

文章名稱:深入理解Java虛擬機_動力節(jié)點Java學院整理-創(chuàng)新互聯
分享網址:http://muchs.cn/article6/ejoig.html

成都網站建設公司_創(chuàng)新互聯,為您提供云服務器外貿網站建設、ChatGPT品牌網站建設、App設計自適應網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

商城網站建設