您好,登錄后才能下訂單哦!
怎么剖析JVM虛擬機(jī)的內(nèi)部結(jié)構(gòu),很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
JVM虛擬機(jī)的內(nèi)部結(jié)構(gòu)
JVM虛擬機(jī)是Java平臺的核心, 為了讓編譯產(chǎn)生的字節(jié)碼能夠更好的解釋和執(zhí)行,JVM主要分為6個(gè)部分【這里只是帶過,想要了解JVM整體執(zhí)行原理的讀者可以去參考《Inside JVM》】:
JVM解釋器:即這個(gè)虛擬機(jī)處理字段碼的 CPU。
JVM指令系統(tǒng):該系統(tǒng)與計(jì)算機(jī)很相似,一條指 令由操作碼和操作數(shù)兩部分組成。操作碼為8位二進(jìn)制數(shù),主要是為了說明一條指令的功能,操作數(shù)可以根據(jù)需要而定,JVM虛擬機(jī)有多達(dá)256種不同的操作指令。
寄存器:JVM有自己的虛擬寄存器,這樣就可以 快速地與JVM的解釋器進(jìn)行數(shù)據(jù)交換。為了功能的需要,JVM虛擬機(jī)設(shè)置了4個(gè)常用的32位寄存器:pc(程序計(jì)數(shù)器)、 optop(操作數(shù)棧頂指針)、frame(當(dāng)前執(zhí)行環(huán)境指針)和vars(指向當(dāng)前執(zhí)行環(huán)境中***個(gè)局部變量的指針)。
JVM棧:指令執(zhí)行時(shí)數(shù)據(jù)和信息存儲的場所和控 制中心,它提供給JVM解釋器運(yùn)算所需要的信息。
存儲區(qū):JVM存儲區(qū)用于存儲編譯過后的字節(jié)碼 等信息。
碎片回收區(qū):JVM碎片回收是指將使用過的 Java類的具體實(shí)例從內(nèi)存進(jìn)行回收,這就使得開發(fā)人員免去了自己編程控制內(nèi)存的麻煩和危險(xiǎn)。隨著JVM的不斷升級,其碎片回收的技術(shù)和算法也更加合理。 JVM 1.4.1版后產(chǎn)生了一種叫分代收集技術(shù),簡單來說就是利用對象在程序中生存的時(shí)間劃分成代,以此為標(biāo)準(zhǔn)進(jìn)行碎片回收。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。