首先看圖:
java相關影片教學:java課程
1.程式計數器(PC)
是執行緒獨享的。是一塊較小的內存,是目前執行緒所執行的字節碼的行號指示器,是Java虛擬機規格中唯一沒有被規定OOM(OutOfMemoryError)的區域。
2.Java虛擬機器堆疊
是是執行緒獨享的。生命週期和線程相同。是Java方法執行的記憶體模型。執行每個方法都會建立一個棧幀,用於儲存局部變數和操作數(物件參考)。局部變數所需的記憶體空間大小在編譯期間完成分配。所以堆疊幀的大小是不會改變的。 有兩種例外:1)若執行緒請求深度大於堆疊的深度,會拋出StackOverFlowError。2)若棧在動態擴展的時候無法請求足夠的內存,會拋出OOM。
3.堆
Java堆是所有執行緒共享的。是虛擬機器啟動的時候創建的。存放的是物件的實例和陣列。所佔記憶體最大。分為新生代(Young區)、老年代(Old區)。新生代又分為Eden區、Servior區。 Servior區又分為From space區與To space區。 Eden區和Servior區的記憶體比例為8:1。當擴充記憶體大於可用記憶體的時候,會拋出OOM。
4.本地方法堆疊
#本地方法堆疊是執行緒獨享的。與Java虛擬機器堆疊類似,但不是為Java方法(字節碼)服務,而是為本機非Java方法服務。也會拋出StackOverFlowError和OOM。
5.方法區
java相關文章推薦:###java入門#######以上是JVM中的運行時資料區域是哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!