1. 程式人生 > >JVM的內存區域劃分(一)

JVM的內存區域劃分(一)

頂部 技術分享 計數 棧幀 指向 劃分 png 運行時 操作數棧

(一)包含了哪幾個部分?

棧內存:每個線程私有。java方法執行的內存模型。java棧中存放的是一個個棧幀,每一個幀對應一個被調用的方法。棧幀包裹局部變量表、操作數棧、指向運行時常量的引用、方法返回地址、附加信息。當線程執行一個方法時,就會隨之創建一個對應的棧幀,並將建立的棧幀壓棧。當方法執行完畢之後,便會將棧幀出棧。因此可知,線程當前執行的方法所對應的棧幀必定位於Java棧的頂部

技術分享圖片

堆內存GC機制,針對的是堆內存】:所有線程公有。存儲對象本身以及數組的。

方法區:所有線程共享。存儲了每個類的信息(包括類名、方法信息、字段信息)。非常重要的部分--->運行時常量池類和接口被加載

JVM後,對應的運行時常量池就被創建出來)

程序計數器(PC寄存器):每個線程私有。用來指示執行哪條指令的。

原生方法棧【很少用】:主要用於java與其他語言的通信。

JVM的內存區域劃分(一)