麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

JVM學(xué)習(xí) - 體系結(jié)構(gòu) 內(nèi)存模型

2019-11-10 20:36:11
字體:
供稿:網(wǎng)友

一:java技術(shù)體系模塊圖JVM學(xué)習(xí) - 體系結(jié)構(gòu) 內(nèi)存模型

二:JVM內(nèi)存區(qū)域模型

JVM學(xué)習(xí) - 體系結(jié)構(gòu) 內(nèi)存模型

1.方法區(qū)

也稱"永久代” 、“非堆”,  它用于存儲虛擬機(jī)加載的類信息、常量、靜態(tài)變量、是各個線程共享的內(nèi)存區(qū)域。默認(rèn)最小值為16MB,最大值為64MB,可以通過-XX:PermSize 和 -XX:MaxPermSize 參數(shù)限制方法區(qū)的大小。

運行時常量池:是方法區(qū)的一部分,Class文件中除了有類的版本、字段、方法、接口等描述信息外,還有一項信息是常量池,用于存放編譯器生成的各種符號引用,這部分內(nèi)容將在類加載后放到方法區(qū)的運行時常量池中。

2.虛擬機(jī)棧

描述的是java 方法執(zhí)行的內(nèi)存模型:每個方法被執(zhí)行的時候 都會創(chuàng)建一個“棧幀”用于存儲局部變量表(包括參數(shù))、操作棧、方法出口等信息。每個方法被調(diào)用到執(zhí)行完的過程,就對應(yīng)著一個棧幀在虛擬機(jī)棧中從入棧到出棧的過程。聲明周期與線程相同,是線程私有的。

 局部變量表存放了編譯器可知的各種基本數(shù)據(jù)類型(boolean、byte、char、short、int、float、long、 double)、對象引用(引用指針,并非對象本身),其中64位長度的long和double類型的數(shù)據(jù)會占用2個局部變量的空間,其余數(shù)據(jù)類型只占1 個。局部變量表所需的內(nèi)存空間在編譯期間完成分配,當(dāng)進(jìn)入一個方法時,這個方法需要在棧幀中分配多大的局部變量是完全確定的,在運行期間棧幀不會改變局部 變量表的大小空間。

3.本地方法棧

 與虛擬機(jī)?;绢?#20284;,區(qū)別在于虛擬機(jī)棧為虛擬機(jī)執(zhí)行的java方法服務(wù),而本地方法棧則是為Native方法服務(wù)。

4.堆 

也叫做java 堆、GC堆是java虛擬機(jī)所管理的內(nèi)存中最大的一塊內(nèi)存區(qū)域,也是被各個線程共享的內(nèi)存區(qū)域,在JVM啟動時創(chuàng)建。該內(nèi)存區(qū)域存放了對象實例及數(shù)組(所有new的對象)。其大小通過-Xms(最小值)和-Xmx(最大值)參數(shù)設(shè)置,-Xms為JVM啟動時申請的最小內(nèi)存,默認(rèn)為操作系統(tǒng)物理內(nèi)存的1/64但小于1G,-Xmx為JVM可申請的最大內(nèi)存,默認(rèn)為物理內(nèi)存的1/4但小于1G,默認(rèn)當(dāng)空余堆內(nèi)存小于40%時,JVM會增大Heap到-Xmx指定的大小,可通過-XX:MinHeapFreeRation=來指定這個比列;當(dāng)空余堆內(nèi)存大于70%時,JVM會減小heap的大小到-Xms指定的大小,可通過XX:MaxHeapFreeRation=來指定這個比列,對于運行系統(tǒng),為避免在運行時頻繁調(diào)整Heap的大小,通常-Xms與-Xmx的值設(shè)成一樣。

由于現(xiàn)在收集器都是采用分代收集算法,堆被劃分為新生代和老年代。新生代主要存儲新創(chuàng)建的對象和尚未進(jìn)入老年代的對象。老年代存儲經(jīng)過多次新生代GC(Minor GC)任然存活的對象。

新生代:

 程序新創(chuàng)建的對象都是從新生代分配內(nèi)存,新生代由Eden Space和兩塊相同大小的Survivor Space(通常又稱S0和S1或From和To)構(gòu)成,可通過-Xmn參數(shù)來指定新生代的大小,也可以通過-XX:SurvivorRation來調(diào)整Eden Space及Survivor Space的大小。

老年代:

用于存放經(jīng)過多次新生代GC任然存活的對象,例如緩存對象,新建的對象也有 可能直接進(jìn)入老年代,主要有兩種情況:①.大對象,可通過啟動參數(shù)設(shè)置-XX:PRetenureSizeThreshold=1024(單位為字節(jié),默 認(rèn)為0)來代表超過多大時就不在新生代分配,而是直接在老年代分配。②.大的數(shù)組對象,切數(shù)組中無引用外部對象。

老年代所占的內(nèi)存大小為-Xmx對應(yīng)的值減去-Xmn對應(yīng)的值。

5.程序計數(shù)器 

它的作用是當(dāng)前線程所執(zhí)行的字節(jié)碼的行號指示器,在虛擬機(jī)的模型里,字節(jié)碼解釋器工作時就是通過改變這個計數(shù)器的值來選取下一條需要執(zhí)行的字節(jié)碼指令,分支、循環(huán)、異常處理、線程恢復(fù)等基礎(chǔ)功能都需要依賴計數(shù)器完成。

三:直接內(nèi)存


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 91美女视频在线 | 日韩一级免费毛片 | 久久久久久久亚洲精品 | 黄色一级视频 | 91精品国产日韩91久久久久久360 | 久久久婷婷一区二区三区不卡 | 国产精品久久久久影院老司 | 在线视频1区 | 国产一区二区免费在线观看视频 | 91成人久久| 亚洲天堂一级片 | 日韩黄色片免费看 | 国产91中文字幕 | 91九色精品国产 | 国产激情视频在线 | 黄视频免费在线观看 | 欧美另类综合 | 久久亚洲精品久久国产一区二区 | 欧美精品一区二区三区在线 | 国产精品视频一区二区噜噜 | 美国av片在线观看 | 国产黄色一区二区 | 久久99国产精品久久99 | 99re热精品视频 | 国产一级爱c视频 | 免费看日产一区二区三区 | 91在线视频福利 | 综合网天天射 | 亚洲成人精品在线 | 久久欧美亚洲另类专区91大神 | 免费1级做55爰片l在线观看 | 极品xxxx欧美一区二区 | 91色成人 | 欧美一级高潮片免费的 | 黄色av片三级三级三级免费看 | 97黄色网 | 少妇色诱麻豆色哟哟 | 久久久成人免费视频 | 叉逼视频| 日本中文不卡视频 | 日韩一级片一区二区三区 |