成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

技術(shù)進(jìn)階:Java虛擬機(jī)(JVM)運(yùn)行時(shí)詳解

云計(jì)算 虛擬化
我們知道的JVM內(nèi)存區(qū)域有:堆和棧,這是一種泛的分法,也是按運(yùn)行時(shí)區(qū)域的一種分法,堆是所有線程共享的一塊區(qū)域,而棧是線程隔離的,每個(gè)線程互不共享。

我們知道的JVM內(nèi)存區(qū)域有:堆和棧,這是一種泛的分法,也是按運(yùn)行時(shí)區(qū)域的一種分法,堆是所有線程共享的一塊區(qū)域,而棧是線程隔離的,每個(gè)線程互不共享。

線程不共享區(qū)域

每個(gè)線程的數(shù)據(jù)區(qū)域包括程序計(jì)數(shù)器、虛擬機(jī)棧和本地方法棧,它們都是在新線程創(chuàng)建時(shí)才創(chuàng)建的。

程序計(jì)數(shù)器(Program Counter Rerister)

程序計(jì)數(shù)器區(qū)域一塊內(nèi)存較小的區(qū)域,它用于存儲(chǔ)線程的每個(gè)執(zhí)行指令,每個(gè)線程都有自己的程序計(jì)數(shù)器,此區(qū)域不會(huì)有內(nèi)存溢出的情況。

虛擬機(jī)棧(VM Stack)

虛擬機(jī)棧描述的是Java方法執(zhí)行的內(nèi)存模型,每個(gè)方法被執(zhí)行的時(shí)候都會(huì)同時(shí)創(chuàng)建一個(gè)棧幀(Stack Frame)用于存儲(chǔ)局部變量表、操作數(shù)棧、動(dòng)態(tài)鏈接、方法出口等信息。每一個(gè)方法被調(diào)用直至執(zhí)行完成的過程就對(duì)應(yīng)著一個(gè)棧幀在虛擬機(jī)棧中從入棧到出棧的過程。

本地方法棧(Native Method Stack)

本地方法棧用于支持本地方法(native標(biāo)識(shí)的方法,即非Java語言實(shí)現(xiàn)的方法)。

虛擬機(jī)棧和本地方法棧,當(dāng)線程請(qǐng)求分配的棧容量超過JVM允許的***容量時(shí)拋出StackOverflowError異常。

線程不共享區(qū)域如下圖綠色背景所示。

 

技術(shù)進(jìn)階:Java虛擬機(jī)(JVM)運(yùn)行時(shí)詳解

 

線程共享區(qū)域

線程共享區(qū)域包含:堆和方法區(qū)。

堆(Heap)

堆是最常處理的區(qū)域,它存儲(chǔ)在JVM啟動(dòng)時(shí)創(chuàng)建的數(shù)組和對(duì)象,JVM垃圾收集也主要是在堆上面工作。

如果實(shí)際所需的堆超過了自動(dòng)內(nèi)存管理系統(tǒng)能提供的***容量時(shí)拋出OutOfMemoryError異常。

方法區(qū)(Method Area)

方法區(qū)是可供各條線程共享的運(yùn)行時(shí)內(nèi)存區(qū)域。存儲(chǔ)了每一個(gè)類的結(jié)構(gòu)信息,例如運(yùn)行時(shí)常量池(Runtime Constant Pool)、字段和方法數(shù)據(jù)、構(gòu)造函數(shù)和普通方法的字節(jié)碼內(nèi)容、還包括一些在類、實(shí)例、接口初始化時(shí)用到的特殊方法。

當(dāng)創(chuàng)建類和接口時(shí),如果構(gòu)造運(yùn)行時(shí)常量池所需的內(nèi)存空間超過了方法區(qū)所能提供的***內(nèi)存空間后就會(huì)拋出OutOfMemoryError

運(yùn)行時(shí)常量池(Runtime Constant Pool)

運(yùn)行時(shí)常量池是方法區(qū)的一部分,每一個(gè)運(yùn)行時(shí)常量池都分配在JVM的方法區(qū)中,在類和接口被加載到JVM后,對(duì)應(yīng)的運(yùn)行時(shí)常量池就被創(chuàng)建。運(yùn)行時(shí)常量池是每一個(gè)類或接口的常量池(Constant_Pool)的運(yùn)行時(shí)表現(xiàn)形式,它包括了若干種常量:編譯器可知的數(shù)值字面量到必須運(yùn)行期解析后才能獲得的方法或字段的引用。

如果方法區(qū)的內(nèi)存空間不能滿足內(nèi)存分配請(qǐng)求,那Java虛擬機(jī)將拋出一個(gè)OutOfMemoryError異常。

 

技術(shù)進(jìn)階:Java虛擬機(jī)(JVM)運(yùn)行時(shí)詳解

 

棧包含F(xiàn)rames,當(dāng)調(diào)用方法時(shí),F(xiàn)rame被推送到堆棧。一個(gè)Frame包含局部變量數(shù)組、操作數(shù)棧、常量池引用。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2018-11-22 12:07:37

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

2020-05-08 16:55:48

Java虛擬機(jī)JVM

2010-09-17 15:12:57

JVMJava虛擬機(jī)

2009-06-04 16:27:39

Java虛擬機(jī)JVMGC

2021-08-13 08:15:23

JVM 虛擬機(jī)Java

2011-06-22 13:35:55

JVM

2015-07-20 15:44:46

Swift框架MJExtension反射

2010-09-25 15:13:40

JVMJava虛擬機(jī)

2020-01-22 16:40:48

Java開發(fā)代碼

2011-11-30 14:12:05

JavaJVM虛擬機(jī)

2024-03-21 09:15:58

JS運(yùn)行的JavaScrip

2020-01-06 10:58:18

JvmGC機(jī)制虛擬機(jī)

2010-09-25 16:12:45

JVM虛擬機(jī)

2025-02-07 08:14:15

Java容器應(yīng)用

2022-03-21 11:07:43

JVM內(nèi)存字節(jié)碼

2020-06-03 15:07:01

Java虛擬機(jī)棧JVM

2021-09-11 15:38:23

容器運(yùn)行鏡像開放

2019-07-12 09:30:12

DashboardDockerDNS

2009-10-14 10:56:00

主流x86虛擬機(jī)技術(shù)

2020-07-29 14:52:48

JVM虛擬機(jī)內(nèi)存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产日韩视频 | 国产免费播放视频 | 日日操操 | 久久一区二区三区四区 | av片免费 | 色综合九九 | 超碰免费观看 | 91视频观看 | 999精品视频| 四虎精品在线 | 日日夜夜天天 | 久久综合久久久 | 成人在线视频网站 | 国产视频中文字幕 | 精品日韩一区二区三区 | 久久精品国产一区二区电影 | 成人精品国产一区二区4080 | 亚洲一区二区免费 | 91久久国产综合久久91精品网站 | 99久久精品国产一区二区三区 | 一区二区三区精品在线视频 | 成人午夜性成交 | 免费看色 | 男人天堂社区 | 伊人久久综合 | 欧洲精品码一区二区三区免费看 | 亚洲精品视 | 久久精品一级 | 亚洲午夜av | 一级毛片在线视频 | 久久久精品网站 | 国产女人与拘做受免费视频 | 一区二区日韩精品 | 久久精品亚洲欧美日韩精品中文字幕 | 久久久久久www | 亚洲综合无码一区二区 | 亚洲一区二区三区欧美 | 日韩欧美国产精品一区 | 久久久久久久国产精品影院 | 婷婷国产一区二区三区 | 超碰伊人久久 |