java虛擬機(jī)漫談(磨礪營(yíng)馬劍威java)

Java虛擬機(jī)(Java Virtual Machine)簡(jiǎn)稱JVM Java虛擬機(jī)是一個(gè)想象中的機(jī)器,在實(shí)際的計(jì)算機(jī)上通過軟件模擬來實(shí)現(xiàn)驶臊。Java虛擬機(jī)有自己想象中的硬件,如處理器、堆棧酥宴、寄存器等,還具有相應(yīng)的指令系統(tǒng)灾挨。

什么是Java虛擬機(jī)

Java虛擬機(jī)(Java Virtual Machine簡(jiǎn)稱JVM)是運(yùn)行所有Java程序的抽象計(jì)算機(jī),是Java語言的運(yùn)行環(huán)境它是Java最具吸引力的特性之一药薯。

Java虛擬機(jī)的特點(diǎn)

Java語言的一個(gè)非常重要的特點(diǎn)就是與平臺(tái)的無關(guān)性薄料。而使用Java虛擬機(jī)是實(shí)現(xiàn)這一特點(diǎn)的關(guān)鍵。一般的高級(jí)語言如果要在不同的平臺(tái)上運(yùn)行,至少需要編譯成不同的目標(biāo)代碼仍源。而引入Java語言虛擬機(jī)后,Java語言在不同平臺(tái)上運(yùn)行時(shí)不需要重新編譯心褐。Java語言使用模式Java虛擬機(jī)屏蔽了與具體平臺(tái)相關(guān)的信息,使得Java語言編譯程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。Java虛擬機(jī)在執(zhí)行字節(jié)碼時(shí),把字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令執(zhí)行笼踩。

Java虛擬機(jī)的使用主體

Java虛擬機(jī)是Java語言底層實(shí)現(xiàn)的基礎(chǔ),對(duì)Java語言感興趣的人都應(yīng)對(duì)Java虛擬機(jī)有個(gè)大概的了解逗爹。這有助于理解Java語言的一些性質(zhì),也有助于使用Java語言。對(duì)于要在特定平臺(tái)上實(shí)現(xiàn)Java虛擬機(jī)的軟件人員,Java語言的編譯器作者以及要用硬件芯片實(shí)現(xiàn)Java虛擬機(jī)的人來說,則必須深刻理解Java虛擬機(jī)的規(guī)范嚎于。另外,如果你想擴(kuò)展Java語言,或是把其它語言編譯成Java語言的字節(jié)碼,你也需要深入地了解Java虛擬機(jī)

Java虛擬機(jī)體系結(jié)構(gòu)

Java虛擬機(jī)由五個(gè)部分組成一組指令集掘而、一組寄存器、一個(gè)棧于购、一個(gè)無用單元收集堆(Garbage-collected-heap)袍睡、一個(gè)方法區(qū)域。這五部分是Java虛擬機(jī)的邏輯成份,不依賴任何實(shí)現(xiàn)技術(shù)或組織方式,但它們的功能必須在真實(shí)機(jī)器上以某種方式實(shí)現(xiàn)

1.Java指令集

Java虛擬機(jī)支持大約248個(gè)字節(jié)碼肋僧。每個(gè)字節(jié)碼執(zhí)行一種基本的CPU運(yùn)算,例如,把一個(gè)整數(shù)加到寄存器,子程序轉(zhuǎn)移等女蜈。Java指令集相當(dāng)于Java程序的匯編語言持舆。

2寄存器

Java虛擬機(jī)的寄存器用于保存機(jī)器的運(yùn)行狀態(tài),與微處理器中的某些專用寄存器類似色瘩。

Java虛擬機(jī)的寄存器有四種

pcJava程序計(jì)數(shù)器伪窖。

optop指向操作數(shù)棧頂端的指針。

frame指向當(dāng)前執(zhí)行方法的執(zhí)行環(huán)境的指針居兆。

vars指向當(dāng)前執(zhí)行方法的局部變量區(qū)第一個(gè)變量的指針覆山。

4.無用單元收集堆

Java的堆是一個(gè)運(yùn)行時(shí)數(shù)據(jù)區(qū),類的實(shí)例(對(duì)象)從中分配空間。Java語言具有無用單元收集能力它不給程序員顯式釋放對(duì)象的能力泥栖。Java不規(guī)定具體使用的無用單元收集算法,可以根據(jù)系統(tǒng)的需求使用各種各樣的算法簇宽。

5.方法區(qū)

方法區(qū)與傳統(tǒng)語言中的編譯后代碼或是Unix進(jìn)程中的正文段類似。它保存方法代碼(編譯后的java代碼)和符號(hào)表吧享。在當(dāng)前的Java實(shí)現(xiàn)中,方法代碼不包括在無用單元收集堆中,但計(jì)劃在將來的版本中實(shí)現(xiàn)魏割。每個(gè)類文件包含了一個(gè)java類或一個(gè)Java界面的編譯后的代碼「炙蹋可以說類文件是Java語言的執(zhí)行代碼文件钞它。為了保證類文件的平臺(tái)無關(guān)性,Java虛擬機(jī)規(guī)范中對(duì)類文件的格式也作了詳細(xì)的說明。其具體細(xì)節(jié)請(qǐng)參考Sun公司的Java虛擬機(jī)規(guī)范殊鞭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遭垛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子操灿,更是在濱河造成了極大的恐慌锯仪,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趾盐,死亡現(xiàn)場(chǎng)離奇詭異庶喜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)救鲤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門久窟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜒简,你說我怎么就攤上這事瘸羡。” “怎么了搓茬?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵犹赖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我卷仑,道長(zhǎng)峻村,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任锡凝,我火速辦了婚禮粘昨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己张肾,他們只是感情好芭析,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吞瞪,像睡著了一般馁启。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芍秆,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天惯疙,我揣著相機(jī)與錄音,去河邊找鬼妖啥。 笑死霉颠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的荆虱。 我是一名探鬼主播蒿偎,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼克伊!你這毒婦竟也來了酥郭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤愿吹,失蹤者是張志新(化名)和其女友劉穎不从,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體犁跪,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡椿息,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坷衍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寝优。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖枫耳,靈堂內(nèi)的尸體忽然破棺而出乏矾,到底是詐尸還是另有隱情,我是刑警寧澤迁杨,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布钻心,位于F島的核電站,受9級(jí)特大地震影響铅协,放射性物質(zhì)發(fā)生泄漏捷沸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一狐史、第九天 我趴在偏房一處隱蔽的房頂上張望痒给。 院中可真熱鬧说墨,春花似錦、人聲如沸苍柏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽序仙。三九已至突颊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間潘悼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工爬橡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留治唤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓糙申,卻偏偏與公主長(zhǎng)得像宾添,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子柜裸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容