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

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:JVM-1

柚子快報(bào)激活碼778899分享:JVM-1

http://yzkb.51969.com/

目錄

1.基礎(chǔ)知識

1.棧

2.本地方法棧

3.程序計(jì)數(shù)器

4.堆

5.方法區(qū)

6.JVM內(nèi)存可見性

2.虛擬機(jī)類加載機(jī)制

1.加載

2.驗(yàn)證

3.準(zhǔn)備

4.解析

5.初始化

6.使用

7.卸載

1.基礎(chǔ)知識

JVM內(nèi)存模型(5種):棧,本地方法棧,程序計(jì)數(shù)器,堆,方法區(qū)。

1.棧

又稱方法棧,線程私有的,線程執(zhí)行方法是都會創(chuàng)建一個(gè)棧陣,用來存儲局部變量表,操作棧,動(dòng)態(tài)鏈接,方法出口等信息

調(diào)用方法時(shí)執(zhí)行入棧,方法返回時(shí)執(zhí)行出棧。

2.本地方法棧

與棧類似,也是用來保存執(zhí)行方法的信息.

執(zhí)行Java方法是使用棧,執(zhí)行Native方法時(shí)使用本地方法棧

3.程序計(jì)數(shù)器

保存著當(dāng)前線程執(zhí)行的字節(jié)碼位置,每個(gè)線程工作時(shí)都有獨(dú)立的計(jì)數(shù)器,只為執(zhí)行Java方法服務(wù),執(zhí)行

Native方法時(shí),程序計(jì)數(shù)器為空

4.堆

JVM內(nèi)存管理最大的一塊,被線程共享,目的是存放對象的實(shí)例,幾乎所有的對象實(shí)例都會放在這里,

當(dāng)堆沒有可用空間時(shí),會拋出OOM異常(內(nèi)存溢出,Out Of Memory,簡稱OOM)。

根據(jù)對象的存活周期不同,JVM把對象進(jìn)行分代管理,由垃圾回收器進(jìn)行垃圾的回收管理

5.方法區(qū)

又稱非堆區(qū),用于存儲已被虛擬機(jī)加載的類信息,常量,靜態(tài)變量,即時(shí)編譯器優(yōu)化后的代碼等數(shù)據(jù)。

6.JVM內(nèi)存可見性

JMM(Java內(nèi)存模型Java Memory Model)本身是一種抽象的概念并不真實(shí)存在,它僅僅描述的是一組約定或規(guī)范,通過這組規(guī)范定義了程序中(尤其是多線程)各個(gè)變量的讀寫訪問方式并決定一個(gè)線程對共享變量的寫入以及如何變成對另一個(gè)線程可見,關(guān)鍵技術(shù)點(diǎn)都是圍繞多線程的原子性、可見性和有序性展開的。

JMM定義程序中變量的訪問規(guī)則,線程對于變量的操作只能在自己的工作內(nèi)存中進(jìn)行,而不能直接對主內(nèi)存進(jìn)行操作。

2.虛擬機(jī)類加載機(jī)制

從類被加載到虛擬機(jī)內(nèi)存中開始,到釋放內(nèi)存總共有7個(gè)步驟:加載(Loading)、驗(yàn)證(Verification)、準(zhǔn)備(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、 卸載(Unloading)。其中驗(yàn)證,準(zhǔn)備,解析三個(gè)部分統(tǒng)稱為連接。

1.加載

通過類的完全限定名,查找此類字節(jié)碼文件,利用字節(jié)碼文件創(chuàng)建Class對象

通過一個(gè)類的全限定名來獲取定義此類的二進(jìn)制字節(jié)流將這個(gè)字節(jié)流所代表的靜態(tài)存儲結(jié)構(gòu)轉(zhuǎn)化為方法區(qū)的運(yùn)行時(shí)數(shù)據(jù)結(jié)構(gòu)在Java堆中生成一個(gè)代表這個(gè)類的java.lang.Class對象,作為方法區(qū)這些數(shù)據(jù)的訪問入口

2.驗(yàn)證

確保Class文件的字節(jié)流中包含的信息符合當(dāng)前虛擬機(jī)的要求,并且不會危害虛擬機(jī)自身安全

文件格式驗(yàn)證元數(shù)據(jù)驗(yàn)證字節(jié)碼驗(yàn)證符號引用驗(yàn)證

3.準(zhǔn)備

進(jìn)行內(nèi)存分配,為static修飾的類變量分配內(nèi)存,并設(shè)置初始值(0或null).不包含final修飾的靜態(tài)變量,因?yàn)閒inal變量在編譯時(shí)分配.

4.解析

將常量池中的符號引用替換為直接引用的過程.

符號引用(Symbolic References): 符號引用以一組符號來描述所引用的目標(biāo),符號可以使任何形式的字面量,只要使用時(shí)能無歧義地定位到目標(biāo)即可。符號引用于虛擬機(jī)實(shí)現(xiàn)的內(nèi)存布局無關(guān),引用的目標(biāo)不一定已經(jīng)加載到內(nèi)存中。

直接引用(Direct References):直接引用可以是直接指向目標(biāo)的指針,相對偏移量或是一個(gè)能簡介定位到目標(biāo)的句柄,直接引用是與虛擬機(jī)實(shí)現(xiàn)的內(nèi)存布局相關(guān)的,統(tǒng)一符號引用在不同虛擬機(jī)實(shí)例上翻譯出來的直接引用一般不會相同,如果有了直接引用,那引用的目標(biāo)必定已經(jīng)在內(nèi)存中存在。

5.初始化

主要完成靜態(tài)塊執(zhí)行以及靜態(tài)變量的賦值.先初始化父類,再初始化當(dāng)前類.只有對類主動(dòng)使用時(shí)才會初始化

6.使用

7.卸載

?

總結(jié):這幾天額要寫JVM專欄啦!

柚子快報(bào)激活碼778899分享:JVM-1

http://yzkb.51969.com/

推薦閱讀

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

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

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

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

發(fā)布評論

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

請?jiān)谥黝}配置——文章設(shè)置里上傳

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

文章目錄