JVM記憶體模型各部分之間的關係
阿新 • • 發佈:2022-04-06
JVM虛擬機器記憶體模型
堆、棧、本地方法棧、方法區、程式計數器之間的關係
只要有一個執行緒開始執行,Java虛擬機器就會給他線上程棧挖一塊自己專屬的記憶體空間,
程式計數器是每一個執行緒都有的,程式開始執行的時候就會挖出一個屬於他的空間,程式計數器的作用:記錄當前的程式執行到這一個行的地址,當執行緒被其他的執行緒搶佔cpu之後恢復執行的時候,根據這個記錄來繼續執行
物件實際是放在堆區中,而物件在棧的區域性變量表存放的是在堆中的地址
靜態變數也是放在堆區中的,方法區存放的也是在堆中的地址
本地方法棧是存放 jvm底層一些由C或C++語言實現的方法的地方
可達性分析演算法:將“GC Roots” 物件作為起點,從這些節點開始向下搜尋引用的物件,找到的物件都標記為非垃圾物件,其餘的未標記的物件都是垃圾物件。
GC Roots根節點:執行緒棧的本地變數,靜態變數,本地方法棧的變數等等