柚子快報(bào)激活碼778899分享:內(nèi)存模型、JVM
柚子快報(bào)激活碼778899分享:內(nèi)存模型、JVM
Java 內(nèi)存模型
Java虛擬機(jī)在運(yùn)行Java程序時(shí),會(huì)管理著一塊內(nèi)存區(qū)域:運(yùn)行時(shí)數(shù)據(jù)區(qū)。在運(yùn)行時(shí)數(shù)據(jù)區(qū)里,會(huì)根據(jù)用途進(jìn)行劃分:
Java虛擬機(jī)棧(棧區(qū))本地方法棧Java堆(堆區(qū))方法區(qū)程序計(jì)數(shù)器
Java 堆
Java 堆即堆內(nèi)存(Heap),是垃圾收集器管理的主要區(qū)域,因此也叫 GC 堆,是 JVM 內(nèi)存中最大,線程共享的,用于存放 Java 對(duì)象實(shí)例,從內(nèi)存回收的角度分為新生代和老年代,從內(nèi)存分配的角度,相當(dāng)于多個(gè)線程私有的分配緩沖區(qū)。在堆中沒(méi)有足夠內(nèi)存完成對(duì)象實(shí)例的分配和堆無(wú)法再擴(kuò)展時(shí),會(huì)拋出 OutOfMemoryError 異常
Java虛擬機(jī)棧
Java 虛擬機(jī)棧即棧內(nèi)存(Stack),是Stack、Java 方法執(zhí)行的內(nèi)存模型,是線程私有的,生命周期與線程相同。主要以棧幀的形式用于存儲(chǔ) Java 方法執(zhí)行時(shí)的局部變量(含數(shù)據(jù)類型、對(duì)象的引用),在方法執(zhí)行結(jié)束后釋放。在虛擬機(jī)棧擴(kuò)展無(wú)法申請(qǐng)到內(nèi)存空間時(shí),拋出 OutOfMemoryError 異常。線程請(qǐng)求棧深度大于虛擬機(jī)允許的深度拋出 **StackOverflowError 異常。**每個(gè) Java 方法執(zhí)行時(shí)都會(huì)創(chuàng)建一個(gè)棧幀,一個(gè)方法從被調(diào)用到執(zhí)行完成相當(dāng)于一個(gè)棧幀從入棧到出棧,局部變量表所需內(nèi)存空間在方法編譯時(shí)就會(huì)完成分配,在方法運(yùn)行時(shí)不會(huì)改變大小
本地方法棧
與 Java虛擬機(jī)棧類似,區(qū)別在于:服務(wù)對(duì)象,即Java虛擬機(jī)棧為執(zhí)行 Java 方法服務(wù);本地方法棧為執(zhí)行 Native方法服務(wù)
方法區(qū)
方法區(qū)是堆的一個(gè)邏輯部分,為了與 Java 堆區(qū)分,又稱**"非堆"區(qū)域(Non-Heap),用于存儲(chǔ)已被虛擬機(jī)加載的類信息、常量、靜態(tài)變量等數(shù)據(jù),是線程共享的,該區(qū)域的內(nèi)存回收主要是針對(duì)運(yùn)行時(shí)常量池和對(duì)類的卸載,又稱永久代**,回收條件苛刻,很少出現(xiàn)垃圾收集。當(dāng)方法區(qū)無(wú)法滿足內(nèi)存分配需求時(shí),會(huì)拋出OutOfMemoryError異常 方法區(qū)內(nèi)部包含一個(gè)運(yùn)行時(shí)的常量池,是方法區(qū)的一部分,用于存放類文件在編譯時(shí)生成的各種字面量和符號(hào)引用,具有動(dòng)態(tài)性(運(yùn)行時(shí)也可以添加新的常量),當(dāng)常量池?zé)o法申請(qǐng)到內(nèi)存時(shí),會(huì)拋出OutOfMemoryError異常
程序計(jì)數(shù)器
當(dāng)前線程所執(zhí)行的字節(jié)碼的行號(hào)指示器,通過(guò)改變計(jì)數(shù)器的值,來(lái)選取下一條執(zhí)行的字節(jié)碼指令,用于實(shí)現(xiàn)異常處理、線程恢復(fù)等基礎(chǔ)功能。程序計(jì)數(shù)器是線程私有的,內(nèi)存空間小。唯一一個(gè)在 JVM 中無(wú)任何 OutOfMemoryError 異常的內(nèi)存區(qū)域 為了使得線程切換后恢復(fù)到正確的執(zhí)行位置,每條線程都配有一個(gè)獨(dú)立的程序計(jì)數(shù)器,各個(gè)線程互不影響,獨(dú)立存儲(chǔ)的內(nèi)存區(qū)域
https://www.yuque.com/wanghl-suxaf/obsqmm/qw0dmf8yrbbqmu69
柚子快報(bào)激活碼778899分享:內(nèi)存模型、JVM
推薦鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。