虛擬機(jī)通過(guò)調(diào)用某個(gè)指定類(lèi)的方法main啟動(dòng),傳遞給main一個(gè)字符串?dāng)?shù)組參數(shù),使指定的類(lèi)被裝載,同時(shí)鏈接該類(lèi)所使用的其它的類(lèi)型,并" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢(xún) 在線咨詢(xún)
15158846557 在線咨詢(xún)
所在位置: 首頁(yè) > 營(yíng)銷(xiāo)資訊 > 信息時(shí)代 > JVM運(yùn)行過(guò)程

JVM運(yùn)行過(guò)程

時(shí)間:2022-02-19 05:21:01 | 來(lái)源:信息時(shí)代

時(shí)間:2022-02-19 05:21:01 來(lái)源:信息時(shí)代

上面對(duì)虛擬機(jī)的各個(gè)部分進(jìn)行了比較詳細(xì)的說(shuō)明,下面通過(guò)一個(gè)具體的例子來(lái)分析它的運(yùn)行過(guò)程。

虛擬機(jī)通過(guò)調(diào)用某個(gè)指定類(lèi)的方法main啟動(dòng),傳遞給main一個(gè)字符串?dāng)?shù)組參數(shù),使指定的類(lèi)被裝載,同時(shí)鏈接該類(lèi)所使用的其它的類(lèi)型,并且初始化它們。新建一java源文件并取名HelloApp.java,內(nèi)容如下:

classHelloApp{

publicstaticvoidmain(Stringargs){

System.out.println('HelloWorld!');

for(inti=0;iSystem.out.println(args);

}

}

}

在命令模式下輸入:javacHelloApp.java進(jìn)行編譯,這時(shí)同目錄下會(huì)產(chǎn)生一個(gè)編譯后的文件:HelloApp.class

然后在命令行模式下鍵入:javaHelloApprunvirtualmachine

將通過(guò)調(diào)用HelloApp的方法main來(lái)啟動(dòng)java虛擬機(jī),傳遞給main一個(gè)包含三個(gè)字符串'run'、'virtual'、'machine'的數(shù)組。我們略述虛擬機(jī)在執(zhí)行HelloApp時(shí)可能采取的步驟。

開(kāi)始試圖執(zhí)行類(lèi)HelloApp的main方法,發(fā)現(xiàn)該類(lèi)并沒(méi)有被裝載,也就是說(shuō)虛擬機(jī)當(dāng)前不包含該類(lèi)的二進(jìn)制代表,于是虛擬機(jī)使用ClassLoader試圖尋找這樣的二進(jìn)制代表。如果這個(gè)進(jìn)程失敗,則拋出一個(gè)異常。類(lèi)被裝載后同時(shí)在main方法被調(diào)用之前,必須對(duì)類(lèi)HelloApp與其它類(lèi)型進(jìn)行鏈接然后初始化。鏈接包含三個(gè)階段:檢驗(yàn),準(zhǔn)備和解析。檢驗(yàn)檢查被裝載的主類(lèi)的符號(hào)和語(yǔ)義,準(zhǔn)備則創(chuàng)建類(lèi)或接口的靜態(tài)域以及把這些域初始化為標(biāo)準(zhǔn)的默認(rèn)值,解析負(fù)責(zé)檢查主類(lèi)對(duì)其它類(lèi)或接口的符號(hào)引用,在這一步它是可選的。類(lèi)的初始化是對(duì)類(lèi)中聲明的靜態(tài)初始化函數(shù)和靜態(tài)域的初始化構(gòu)造方法的執(zhí)行。一個(gè)類(lèi)在初始化之前它的父類(lèi)必須被初始化。

關(guān)鍵詞:過(guò)程,運(yùn)行

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉