jvm虛擬機器的五個組成部分解析

一個X號的QB發表於2016-08-22

1)程式計數器

幾乎不佔記憶體,用於取下一條指令

2)堆,所有通過new建立的物件的記憶體都在堆中分配,堆被劃分為新生代和老年代。新生代有進一步劃分為

Eden和Survivor區,最後Survivor由FromSpace和ToSpace組成。新建的物件都使用新生代分配記憶體,

Eden空間不足,會把存活物件移植到Survivor中。

3)棧,每個執行緒執行每個方法的時候都會在棧中申請一個棧幀,每個棧幀包括區域性變數區和運算元棧,用於存放此次方法呼叫

過程中的臨時變數、引數和中間結果

4)本地方法棧

用於支援native方法的執行,儲存每個native方法呼叫的狀態

5)方法區

存放要載入的類資訊、靜態變數、final型別常量、屬性和方法資訊,jvm用永久代來存放方法區

相關文章