国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

子牙精品課程手寫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小班五期的評論 (共 條)

分享到微博請遵守國家法律
温宿县| 河池市| 梓潼县| 和顺县| 永州市| 甘南县| 根河市| 六枝特区| 松江区| 红安县| 武强县| 中江县| 嘉禾县| 克什克腾旗| 绥中县| 固始县| 吉木萨尔县| 定南县| 射阳县| 清流县| 绍兴市| 五常市| 磐石市| 巴东县| 恭城| 黑河市| 曲沃县| 吉安县| 绩溪县| 舒兰市| 东乡县| 葫芦岛市| 太康县| 武宣县| 阿鲁科尔沁旗| 遂平县| 垦利县| 扎兰屯市| 和静县| 吐鲁番市| 焉耆|