JVM,Java Virtual Machine,中文就是Java虛擬機(jī)了, 和名字一樣就是個(gè)虛擬機(jī)器,來(lái)模擬通用的計(jì)算機(jī),有著一套虛擬的完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系" />

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

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > Java虛擬機(jī)到底是什么

Java虛擬機(jī)到底是什么

時(shí)間:2023-07-15 03:12:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-07-15 03:12:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)

Java虛擬機(jī)到底是什么:Java虛擬機(jī)到底是什么

JVM,Java Virtual Machine,中文就是Java虛擬機(jī)了, 和名字一樣就是個(gè)虛擬機(jī)器,來(lái)模擬通用的計(jì)算機(jī),有著一套虛擬的完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。 JVM是一種規(guī)定好的標(biāo)準(zhǔn)規(guī)范, 定義了.class文件在其內(nèi)部運(yùn)行的相關(guān)標(biāo)準(zhǔn)和規(guī)范。一般來(lái)講,所有的JVM都是基于棧結(jié)構(gòu)的運(yùn)行方式。那么不符合這種要求的,不算是JVM, 如Android中所使用的Dalvik 虛擬機(jī)就不能稱作是JAVA 虛擬機(jī), 因?yàn)樗腔诩拇嫫鳎ㄗ钚碌腁ndroid系統(tǒng)據(jù)說(shuō)已經(jīng)放棄了Dalvik VM, 而是使用ART)。

JVM相關(guān)實(shí)現(xiàn)的產(chǎn)品有很多, 通常最有名最常用的就是現(xiàn)在Oracle公司所有的HotSpot 虛擬機(jī)。

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

Java虛擬機(jī)的體系結(jié)構(gòu)如下, 包括在規(guī)范中描述的主要子系統(tǒng)和內(nèi)存區(qū)。




本地方法接口

當(dāng)Java虛擬機(jī)是由主機(jī)操作系統(tǒng)上的軟件實(shí)現(xiàn)的時(shí)候, Java程序通過(guò)調(diào)用本地方法( native method)和主機(jī)交互。 Java中有兩種方法: Java方法和本地方法。Java方法是由Java話言編寫,編譯成字節(jié)碼,存儲(chǔ)在class文件中的。本地方法是由其他語(yǔ)言(比如c, c++,或者匯編語(yǔ)言) 編寫的, 編譯成和處理器相關(guān)的機(jī)器代碼 。本地方法保存在動(dòng)態(tài)連接庫(kù)中, 格式是各個(gè)平合專有的。Java方法是與平臺(tái)無(wú)關(guān)的,但是本地方法卻不是。運(yùn)行中的Java程序調(diào)用本地方法時(shí),虛擬機(jī)包含這個(gè)本地方法的動(dòng)態(tài)庫(kù). 并調(diào)用這個(gè)方法。 在圖1-4中可以看到, 本地方法是聯(lián)系Java程序和底層主機(jī)操作系統(tǒng)的進(jìn)接方法

通過(guò)本地方法, Java程序可以直接訪同底層操作系統(tǒng)的資源。如果你這樣用,你的程序就變成了平臺(tái)相關(guān)的, 因?yàn)榘镜胤椒ǖ膭?dòng)態(tài)庫(kù)是平臺(tái)相關(guān)的。除此之外, 使用本地方法還可能把程序變得和特定的Java平臺(tái)實(shí)現(xiàn)相關(guān)。一個(gè)本地方法接口——Java本地接口 ( Java Native lnterface, JNI)——使得本地方法可以在特定主機(jī)系統(tǒng)的任何一個(gè)Java平臺(tái)實(shí)現(xiàn)上運(yùn)行。然而Java平合供應(yīng)商并不一定必須支持JNI。除了lNl之外, 他們還可以提供自己的本地方法控口。

Java給人們提供了選擇的機(jī)會(huì)。 如果希望使用特定主機(jī)上的資源, 它們又無(wú)法從Java API訪問(wèn), 那么可以寫一個(gè)平臺(tái)相關(guān)的Java程序來(lái)調(diào)用本地方法。 如果希望保證程序的平臺(tái)無(wú)關(guān)性, 那么只能通過(guò)Java API訪問(wèn)問(wèn)底層系統(tǒng)資源。

類加載器的體系結(jié)構(gòu)

每個(gè)Java虛擬機(jī)都有一個(gè)類裝載器子系統(tǒng),它根據(jù)給定的全限定名來(lái)裝入類型(類或接口)。類裝載器子系統(tǒng)包含多個(gè)類加載器,類加載器的體系結(jié)的是Java虛擬機(jī)在安全性和網(wǎng)絡(luò)移動(dòng)性上發(fā)揮重要作用的。Java虛擬機(jī)擁有靈活的類裝載器體系結(jié)構(gòu), 從而使Java應(yīng)用程序得以用自定義的方式來(lái)實(shí)現(xiàn)類的裝載。

關(guān)鍵詞:虛擬

74
73
25
news

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

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