国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JVM第一篇 認(rèn)識(shí)java虛擬機(jī)

這篇具有很好參考價(jià)值的文章主要介紹了JVM第一篇 認(rèn)識(shí)java虛擬機(jī)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1. 什么是java虛擬機(jī)

2. java虛擬機(jī)分類

2.1. 商用虛擬機(jī)

2.2. 嵌入式虛擬機(jī)

3.java虛擬機(jī)架構(gòu)

4.java虛擬機(jī)運(yùn)行過(guò)程


1. 什么是java虛擬機(jī)

? ? ? ?傳統(tǒng)意義上的虛擬機(jī)是一種抽象化的計(jì)算機(jī),通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的,是操作系統(tǒng)級(jí)別的虛擬機(jī)。Java虛擬機(jī)是一種程序虛擬機(jī),有自己完善的硬體架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。Java虛擬機(jī)屏蔽了與具體操作系統(tǒng)平臺(tái)相關(guān)的信息,使得Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。

2. java虛擬機(jī)分類

2.1. 商用虛擬機(jī)

(1)Sun HotSpot
該虛擬機(jī)性能優(yōu)越,是 sun JDK1.3 及以后所有 sun JDK 版本默認(rèn)的虛擬機(jī),使用最為廣泛,一般默認(rèn)所說(shuō)的虛擬機(jī)就是該虛擬機(jī)。
(2)BEA??JRockit
JRockit 虛擬機(jī)是 BEA 公司于 2002 年從 Appeal Virtual Machines 收購(gòu)獲得的虛擬機(jī)。
它是一款面向服務(wù)器硬件和服務(wù)端使用場(chǎng)景高度優(yōu)化過(guò)得虛擬機(jī),曾經(jīng)號(hào)稱是“世界上速度最快的虛擬機(jī)”。
由于專注于服務(wù)端應(yīng)用,它的內(nèi)部不包含解析器的實(shí)現(xiàn),全部代碼都靠即時(shí)編譯器編譯后執(zhí)行。
(3)IBM J9
J9 虛擬機(jī)是 IBM 公司單獨(dú)開發(fā)的高性能虛擬機(jī),它并不獨(dú)立出售,而是作為 IBM 公司各種產(chǎn)品的執(zhí)行平臺(tái),IBM 把它定義為一個(gè)可以適應(yīng)從嵌入式設(shè)備到大型企業(yè)級(jí)應(yīng)用的、高可移植性的Java運(yùn)行平臺(tái)。
(4)Sun Classic?
這個(gè)虛擬機(jī)很原始,是 JDK1.0 時(shí)代使用的Java虛擬機(jī),是各種虛擬機(jī)的鼻祖,它的內(nèi)部不存在即時(shí)編譯器,只能使用純解釋的方式運(yùn)行。
(5)Sun Exact?
這是 Sun 公司在 HotSpot 之外的另一個(gè)虛擬機(jī),在 JDK1.2 時(shí)代曾短暫的投入過(guò)商用,它和 HotSpot 同時(shí)開發(fā),但最終被 HotSpot 取代。
(6)Apache Harmony?
Harmony 是 Apache 軟件基金會(huì)主導(dǎo)的、開源的、獨(dú)立的、實(shí)際兼容與 JDK1.5 和 JDK1.6的虛擬機(jī)實(shí)現(xiàn),
它間接催生了 Google Android 平臺(tái)的 Dalvik 虛擬機(jī),Android 的影響力現(xiàn)在有多大不用多說(shuō),目前已經(jīng)是最成功的的數(shù)碼設(shè)備通用平臺(tái)。
但是由于它的 TCK 授權(quán)問(wèn)題,直接導(dǎo)致 Apache 與 Oracle 的決裂,從而退出了 JCP 組成,這是近代 Java 陣營(yíng)遇到的最嚴(yán)重的分裂危機(jī)。

2.2. 嵌入式虛擬機(jī)

(1)Dalvik
Dalvik 虛擬機(jī)是 Google 等廠商合作開發(fā)的 Android 移動(dòng)設(shè)備平臺(tái)的核心組成部分之一,它執(zhí)行 dex(Dalvik Executable) 文件而不是 class 文件,
使用寄存器架構(gòu)而不是棧架構(gòu),但是它的開發(fā)體系與Java有著千絲萬(wàn)縷的關(guān)系,可以直接使用大部分的 Java API、dex 文件可以直接從class文件轉(zhuǎn)化而來(lái)。
并且在 Android 2.2 中提供了即時(shí)編譯器的實(shí)現(xiàn),性能大大的提高。

(2)KVM
在 Android、IOS 等智能手機(jī)操作系統(tǒng)出現(xiàn)之前,曾廣泛應(yīng)用于手機(jī)平臺(tái)的一種虛擬機(jī)。

(3)CDC/CLDC HotSpot
CDC和 CLDC HotSpot 分別是 Sun 針對(duì)高端嵌入式設(shè)備和中低端嵌入式設(shè)備的虛擬機(jī),用來(lái)代替 KVM。
?

3.java虛擬機(jī)架構(gòu)

JVM的架構(gòu)分為三個(gè)部分:類加載器、運(yùn)行時(shí)數(shù)據(jù)區(qū)和執(zhí)行引擎。
(1) 類加載器類加載器是JVM的重要組成部分,它負(fù)責(zé)將Java類加載到JVM中。類加載器將Java類文件加載到內(nèi)存中,并將其轉(zhuǎn)換為JVM可以理解的格式。類加載器分為三個(gè)層次:?jiǎn)?dòng)類加載器、擴(kuò)展類加載器和應(yīng)用程序類加載器。啟動(dòng)類加載器是JVM的一部分,它負(fù)責(zé)加載Java核心類庫(kù),如java.lang和java.util等。擴(kuò)展類加載器負(fù)責(zé)加載Java擴(kuò)展類庫(kù),如JDBC驅(qū)動(dòng)程序和Java Servlet API等。應(yīng)用程序類加載器負(fù)責(zé)加載應(yīng)用程序的類文件。
(2) 運(yùn)行時(shí)數(shù)據(jù)區(qū)運(yùn)行時(shí)數(shù)據(jù)區(qū)是JVM的內(nèi)存管理系統(tǒng),它分為五個(gè)部分:方法區(qū)、堆、虛擬機(jī)棧、本地方法棧和程序計(jì)數(shù)器。方法區(qū)存儲(chǔ)類的結(jié)構(gòu)信息、常量池、靜態(tài)變量和方法代碼等。堆是Java程序運(yùn)行時(shí)的內(nèi)存區(qū)域,用于存儲(chǔ)對(duì)象實(shí)例。虛擬機(jī)棧用于存儲(chǔ)方法的局部變量、操作數(shù)棧和返回值等。本地方法棧用于存儲(chǔ)本地方法的參數(shù)和返回值。程序計(jì)數(shù)器用于記錄當(dāng)前線程執(zhí)行的字節(jié)碼指令地址。
(3) 執(zhí)行引擎執(zhí)行引擎是JVM的核心部分,它負(fù)責(zé)將Java字節(jié)碼轉(zhuǎn)換為機(jī)器碼,并執(zhí)行Java程序。執(zhí)行引擎分為兩個(gè)部分:解釋器和即時(shí)編譯器。
解釋器將Java字節(jié)碼逐條解釋為機(jī)器碼,并執(zhí)行Java程序。即時(shí)編譯器將Java字節(jié)碼編譯為本地機(jī)器碼,并執(zhí)行Java程序。即時(shí)編譯器可以提高Java程序的執(zhí)行效率。

4.java虛擬機(jī)運(yùn)行過(guò)程

java程序運(yùn)行過(guò)程:字節(jié)碼文件加載 -> 解釋執(zhí)行/編譯執(zhí)行

簡(jiǎn)單圖:

JVM第一篇 認(rèn)識(shí)java虛擬機(jī),java,JVM,jvm,java,開發(fā)語(yǔ)言

?復(fù)雜圖:

JVM第一篇 認(rèn)識(shí)java虛擬機(jī),java,JVM,jvm,java,開發(fā)語(yǔ)言

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-677634.html

到了這里,關(guān)于JVM第一篇 認(rèn)識(shí)java虛擬機(jī)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JVM(Java虛擬機(jī))-史上最全、最詳細(xì)JVM筆記

    JVM(Java虛擬機(jī))-史上最全、最詳細(xì)JVM筆記

    一、JVM概述 1、1為什么要學(xué)習(xí)JVM 1、2虛擬機(jī) 1、3JVM作用 1、4JVM整體組成部分? 二、JVM結(jié)構(gòu)--類加載器 2、1類加載子系統(tǒng) 2、2類加載過(guò)程 2、2、1加載 2、2、2鏈接 2、2、3初始化 2、3類加載器分類 2.3.1 引導(dǎo)類加載器(啟動(dòng)類加載器 BootStrap ClassLoader) 2.3.2 擴(kuò)展類加載器(Extension ClassL

    2024年02月03日
    瀏覽(28)
  • JVM(Java虛擬機(jī))

    JVM(Java虛擬機(jī))

    目錄 1.JVM 簡(jiǎn)介 2. JVM 運(yùn)行時(shí)數(shù)據(jù)區(qū) 2.1程序計(jì)數(shù)器 2.棧 3.堆 4.方法區(qū) 3.類加載 1.loading 2.linking 1.驗(yàn)證 2.準(zhǔn)備 3.解析 3.Initializing 4.雙親委派模型 5.JVM垃圾回收機(jī)制 1.劣勢(shì) 2.回收什么 3.垃圾回收具體怎么回收 1.找垃圾 方法: 問(wèn)題: 2.釋放垃圾 JVM 是 Java Virtual Machine 的簡(jiǎn)稱,意為 Java虛

    2024年02月01日
    瀏覽(44)
  • Java虛擬機(jī)快速入門 | JVM引言、JVM內(nèi)存結(jié)構(gòu)、直接內(nèi)存

    Java虛擬機(jī)快速入門 | JVM引言、JVM內(nèi)存結(jié)構(gòu)、直接內(nèi)存

    目錄 一:JVM引言 1. 什么是 JVM ? 2. 常見的 JVM 3. 學(xué)習(xí)路線 二:JVM內(nèi)存結(jié)構(gòu) 1. 程 序 計(jì) 數(shù) 器(PC Register) 2. 虛 擬 機(jī) 棧(JVM Stacks) 3. 本 地 方 法 棧(Native Method Stacks) 4. 堆(Heap) 5. 方 法 區(qū)(Method Area) 三:直接內(nèi)存 tips: 首先給大家推薦兩款好用的免費(fèi)軟件:動(dòng)圖抓取軟

    2024年02月05日
    瀏覽(20)
  • JVM(Java虛擬機(jī))詳解

    JVM(Java虛擬機(jī))詳解

    目錄 一、JVM內(nèi)存區(qū)域劃分 ? 1. 什么是內(nèi)存區(qū)域劃分以及為啥要進(jìn)行區(qū)域劃分 ? 2. JVM內(nèi)存區(qū)域劃分詳解 ??3. 堆區(qū)詳解:? ? 4. 給一段代碼,問(wèn)某個(gè)變量是在那個(gè)區(qū)域上? 二、JVM類加載機(jī)制 ? 1.類加載的過(guò)程 ? 2. 類加載的時(shí)機(jī) ? 3. 雙親委派模型(經(jīng)典面試) 三、JVM垃圾回收

    2024年02月15日
    瀏覽(36)
  • JVM——Java虛擬機(jī)詳解

    JVM——Java虛擬機(jī)詳解

    JVM——Java虛擬機(jī),它是Java實(shí)現(xiàn)平臺(tái)無(wú)關(guān)性的基石。 Java程序運(yùn)行的時(shí)候,編譯器將Java文件編譯成平臺(tái)無(wú)關(guān)的Java字節(jié)碼文件(.class),接下來(lái)對(duì)應(yīng)平臺(tái)JVM對(duì)字節(jié)碼文件進(jìn)行解釋,翻譯成對(duì)應(yīng)平臺(tái)匹配的機(jī)器指令并運(yùn)行。 同時(shí)JVM也是一個(gè)跨語(yǔ)言的平臺(tái),和語(yǔ)言無(wú)關(guān),只和class的文

    2024年01月19日
    瀏覽(36)
  • Java虛擬機(jī)(JVM)框架

    見:GitHub - eHackyd/Java_JVM: Java虛擬機(jī)(JVM)框架的學(xué)習(xí)筆記

    2024年02月10日
    瀏覽(21)
  • Jvm --java虛擬機(jī)(上)

    Jvm --java虛擬機(jī)(上)

    為什么學(xué)習(xí)jvm 如果你這輩子只甘心做一個(gè)平庸的Java碼農(nóng),那么你可以利用閱讀本文的時(shí)間去學(xué)習(xí)其他新的技術(shù)知識(shí),但是如果你想成為一個(gè)更更更更優(yōu)秀的中高級(jí)程序員!那么請(qǐng)繼續(xù)閱讀本文,希望這篇文章會(huì)對(duì)你有所幫助,那么學(xué)習(xí)jvm有啥好處嘞? 首先: 你能夠明白為什

    2024年02月03日
    瀏覽(30)
  • JVM(Java虛擬機(jī))概述

    ? ? ?JVM(Java Virtual Machine)是一個(gè)能夠運(yùn)行Java字節(jié)碼的虛擬計(jì)算機(jī)。它是Java平臺(tái)的核心組成部分,負(fù)責(zé)執(zhí)行編譯后的Java程序,提供跨平臺(tái)運(yùn)行的能力。JVM使得Java程序可以在任何安裝了JVM的操作系統(tǒng)上運(yùn)行,無(wú)需對(duì)代碼進(jìn)行修改,實(shí)現(xiàn)了\\\"一次編寫,到處運(yùn)行\(zhòng)\\"(Write Once, Ru

    2024年03月11日
    瀏覽(25)
  • Java虛擬機(jī)(JVM):虛擬機(jī)棧溢出

    Java虛擬機(jī)(JVM):虛擬機(jī)棧溢出

    Java虛擬機(jī)棧溢出(Java Virtual Machine Stack Overflow)是指在Java程序中,當(dāng)線程調(diào)用的方法層級(jí)過(guò)深,導(dǎo)致??臻g溢出的情況。 Java虛擬機(jī)棧是每個(gè)線程私有的,用于存儲(chǔ)方法的調(diào)用和局部變量的內(nèi)存空間。每當(dāng)一個(gè)方法被調(diào)用時(shí),會(huì)在棧中創(chuàng)建一個(gè)棧幀,用于存儲(chǔ)方法的參數(shù)、局

    2024年02月12日
    瀏覽(21)
  • Java虛擬機(jī)(JVM):堆溢出

    Java虛擬機(jī)(JVM):堆溢出

    Java堆溢出(Java Heap Overflow)是指在Java程序中,當(dāng)創(chuàng)建對(duì)象時(shí),無(wú)法分配足夠的內(nèi)存空間來(lái)存儲(chǔ)對(duì)象,導(dǎo)致堆內(nèi)存溢出的情況。 Java堆是Java虛擬機(jī)中用于存儲(chǔ)對(duì)象的一塊內(nèi)存區(qū)域。當(dāng)程序創(chuàng)建對(duì)象時(shí),會(huì)在堆中分配一塊連續(xù)的內(nèi)存空間來(lái)存儲(chǔ)對(duì)象的實(shí)例變量。如果堆中的剩余

    2024年02月12日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包