最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

子牙精品課程手寫JVM小班五期

2023-08-24 15:29 作者:IT前端知識  | 我要投稿


1. Java 內存區(qū)域與內存溢出異常

1.1 運行時數(shù)據(jù)區(qū)域

根據(jù)《Java 虛擬機規(guī)范(Java SE 7 版)》規(guī)定,Java 虛擬機所管理的內存如下圖所示。




?


1.1.1 程序計數(shù)器


內存空間小,線程私有。字節(jié)碼解釋器工作是就是通過改變這個計數(shù)器的值來選取下一條需要執(zhí)行指令的字節(jié)碼指令,分支、循環(huán)、跳轉、異常處理、線程恢復等基礎功能都需要依賴計數(shù)器完成


如果線程正在執(zhí)行一個 Java 方法,這個計數(shù)器記錄的是正在執(zhí)行的虛擬機字節(jié)碼指令的地址;如果正在執(zhí)行的是 Native 方法,這個計數(shù)器的值則為 (Undefined)。此內存區(qū)域是唯一一個在 Java 虛擬機規(guī)范中沒有規(guī)定任何 OutOfMemoryError 情況的區(qū)域。


1.1.2 Java 虛擬機棧


線程私有,生命周期和線程一致。描述的是 Java 方法執(zhí)行的內存模型:每個方法在執(zhí)行時都會床創(chuàng)建一個棧幀(Stack Frame)用于存儲局部變量表、操作數(shù)棧、動態(tài)鏈接、方法出口等信息。每一個方法從調用直至執(zhí)行結束,就對應著一個棧幀從虛擬機棧中入棧到出棧的過程。


局部變量表:存放了編譯期可知的各種基本類型(boolean、byte、char、short、int、float、long、double)、對象引用(reference 類型)和 returnAddress 類型(指向了一條字節(jié)碼指令的地址)


StackOverflowError:線程請求的棧深度大于虛擬機所允許的深度。

OutOfMemoryError:如果虛擬機??梢詣討B(tài)擴展,而擴展時無法申請到足夠的內存。


1.1.3 本地方法棧


區(qū)別于 Java 虛擬機棧的是,Java 虛擬機棧為虛擬機執(zhí)行 Java 方法(也就是字節(jié)碼)服務,而本地方法棧則為虛擬機使用到的 Native 方法服務。也會有 StackOverflowError 和 OutOfMemoryError 異常。


1.1.4 Java 堆


對于絕大多數(shù)應用來說,這塊區(qū)域是 JVM 所管理的內存中最大的一塊。線程共享,主要是存放對象實例和數(shù)組。內部會劃分出多個線程私有的分配緩沖區(qū)(Thread Local Allocation Buffer, TLAB)??梢晕挥谖锢砩喜贿B續(xù)的空間,但是邏輯上要連續(xù)。


OutOfMemoryError:如果堆中沒有內存完成實例分配,并且堆也無法再擴展時,拋出該異常。


1.1.5 方法區(qū)

it 你要的都有

子牙精品課程手寫JVM小班五期的評論 (共 條)

分享到微博請遵守國家法律
阿尔山市| 石渠县| 中牟县| 罗田县| 沙湾县| 阿坝县| 中阳县| 额济纳旗| 武功县| 南京市| 阿拉善右旗| 花垣县| 新宾| 东港市| 呼和浩特市| 托克托县| 康保县| 濉溪县| 昌图县| 灵台县| 镶黄旗| 金乡县| 泸西县| 肇庆市| 仙桃市| 临夏市| 江城| 绥芬河市| 平舆县| 潞西市| 湖口县| 红原县| 广元市| 松桃| 阜阳市| 阳东县| 砚山县| 年辖:市辖区| 南安市| 孝感市| 海安县|