欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:【基礎(chǔ)篇】一、認(rèn)識JVM

柚子快報激活碼778899分享:【基礎(chǔ)篇】一、認(rèn)識JVM

http://yzkb.51969.com/

文章目錄

1、虛擬機(jī)2、Java虛擬機(jī)3、JVM的整體結(jié)構(gòu)4、Java代碼的執(zhí)行流程5、JVM的三大功能6、JVM的分類7、JVM的生命周期

1、虛擬機(jī)

虛擬機(jī),Virtual Machine,一臺虛擬的計算機(jī),用來執(zhí)行虛擬計算機(jī)指令。分為:

系統(tǒng)虛擬機(jī):如VMware,是完全對物理計算機(jī)的仿真程序虛擬機(jī):如JVM,專門為執(zhí)行單個計算機(jī)程序而設(shè)計,JVM中執(zhí)行的指令就是Java字節(jié)碼指令

不論是哪種類型虛擬機(jī),其上面運行的軟件或者程序,都被限制于虛擬機(jī)所提供的資源之內(nèi)。

2、Java虛擬機(jī)

JVM,Java Virtual Machine ,即Java虛擬機(jī),一臺處理Java字節(jié)碼文件(解釋為二進(jìn)制文件)的虛擬計算機(jī),本質(zhì)是一個運行在計算機(jī)上的程序。 JVM運行在操作系統(tǒng)之上,并沒有與計算機(jī)的硬件做直接的交互。(因此,不同的操作系統(tǒng),對應(yīng)著不同的JVM)

JVM ? JRE ? JDK三者的關(guān)系:

3、JVM的整體結(jié)構(gòu)

以HotSpot為例:

以上架構(gòu)分三層看:(首先javac編譯器將xx.java源文件編譯為xx.class字節(jié)碼文件)

最上層由類裝載器將字節(jié)碼文件加載到內(nèi)存中,生成一個大的class對象中間層,其中方法區(qū)、堆區(qū)是所有線程共享,而棧、程序計數(shù)器、寄存器是一個線程一個最下層,執(zhí)行引擎里包括解釋器、JIT即時編譯器、GC垃圾回收器

上面結(jié)構(gòu)圖再詳細(xì):

4、Java代碼的執(zhí)行流程

Java做為一種跨平臺的語言,一次編譯,到處運行。即Java源代碼被成功編譯為.class字節(jié)碼后,換平臺運行,無需再次編譯。

具體流程為:

Java源文件x.java被編譯器javac.exe(JDK自帶)編譯成字節(jié)碼文件x.class類裝載器加載字節(jié)碼文件到JVMJVM執(zhí)行引擎中的解釋器將字節(jié)碼文件處理成二進(jìn)制文件操作系統(tǒng)執(zhí)行二進(jìn)制文件和硬件進(jìn)行交互

PS:Java虛擬機(jī)不關(guān)心運行在其內(nèi)部的程序是用的什么語言,只要是遵循其規(guī)范編譯的字節(jié)碼文件,就都能運行。

換言之,不是牛在Java,而是JVM。Java是跨平臺的語言 ? JVM是跨語言的平臺

5、JVM的三大功能

1)解釋和運行

把字節(jié)碼解釋成二進(jìn)制機(jī)器碼

2)內(nèi)存管理

自動為對象、方法等分配內(nèi)存空間,以及回收不再使用的對象

3)即時編譯JIT(Just-In-Time)

對熱點代碼(熱點代碼即很短的時間內(nèi)被多次調(diào)用) 進(jìn)行優(yōu)化,提升執(zhí)行效率。Java如果不做任何優(yōu)化,性能不如C、C++,因為后者編譯后得到的就是機(jī)器碼,少了解釋這一步

Java多字節(jié)碼解釋為機(jī)器碼這一步,是為例支持跨平臺,有失有得:

即時編譯是將熱點代碼解釋完后保存在內(nèi)存中,下次執(zhí)行直接調(diào)用,省了一步解釋操作的時間:

6、JVM的分類

Sun Classic VM , 1996 + Java1.0 + 只有解釋器,沒有JIT即時編譯器(因此性能較差)Exact VM,Java1.2,準(zhǔn)確式內(nèi)存管理,可直到內(nèi)存中某個位置的數(shù)據(jù)具體是什么類型HotSpot VM,JDK1.3時,成為默認(rèn)的虛擬機(jī)JRockit VM,專注于服務(wù)器端,不包含解釋器IBM的J9,與上面的HotSpot、JRockit是三大商用虛擬機(jī),2017年開源,命名為Open J9KVM和CDC/CLDC HotspotMicrosoft JVMTaobao JVM,阿里…

Open JDK版本的HotSpot可以做二次開發(fā),不管是二開還是開發(fā)新的虛擬機(jī),都要遵守Oracle制定的JVM開發(fā)規(guī)范。最后,默認(rèn)的HotSpot的發(fā)展歷程:

7、JVM的生命周期

STEP1:啟動

JVM的啟動時通過引導(dǎo)類加載器bootstrap class loader創(chuàng)建一個初始類initial class來完成的,不同的虛擬機(jī),這個類也不同

STEP2:執(zhí)行

開始執(zhí)行Java程序時,JVM開始運行,程序執(zhí)行結(jié)束,JVM也就停止了(jsp看JVM進(jìn)程,會發(fā)現(xiàn)其隨著程序的結(jié)束而結(jié)束)

STEP3:退出

程序正常執(zhí)行結(jié)束,JVM退出程序執(zhí)行中遇到異?;蝈e誤,且一值向上throw到了main方法,main再拋,就到JVM,JVM退出操作系統(tǒng)出現(xiàn)錯誤也會可知JVM進(jìn)程終止,JVM退出某個線程調(diào)用Runtime類或System類的exit方法,或者說是Runtime類的halt方法(底層是native halt0方法)

柚子快報激活碼778899分享:【基礎(chǔ)篇】一、認(rèn)識JVM

http://yzkb.51969.com/

參考文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/15789617.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄