1. 程式人生 > 其它 >JVM記憶體模型各部分之間的關係

JVM記憶體模型各部分之間的關係

   JVM虛擬機器記憶體模型

 

    堆、棧、本地方法棧、方法區、程式計數器之間的關係

    

 

  

    只要有一個執行緒開始執行,Java虛擬機器就會給他線上程棧挖一塊自己專屬的記憶體空間,

    程式計數器是每一個執行緒都有的,程式開始執行的時候就會挖出一個屬於他的空間,程式計數器的作用:記錄當前的程式執行到這一個行的地址,當執行緒被其他的執行緒搶佔cpu之後恢復執行的時候,根據這個記錄來繼續執行

    物件實際是放在堆區中,而物件在棧的區域性變量表存放的是在堆中的地址

    靜態變數也是放在堆區中的,方法區存放的也是在堆中的地址

    本地方法棧是存放 jvm底層一些由C或C++語言實現的方法的地方

    

    可達性分析演算法:將“GC Roots” 物件作為起點,從這些節點開始向下搜尋引用的物件,找到的物件都標記為非垃圾物件,其餘的未標記的物件都是垃圾物件。

    GC Roots根節點:執行緒棧的本地變數,靜態變數,本地方法棧的變數等等