二。JVM記憶體區域

2021-10-07 13:41:04 字數 350 閱讀 7930

jdk1.8之前,代表jvm內一塊區域。

jdk1.8之後,也就是元空間metaspace。存放類,靜態變數,常量池。總之與類有關的都在方法區。

類一般先載入進方法區。

寫好的**被翻譯成位元組碼,對應各種位元組碼指令。計數器就是記錄當前位元組碼指令的位置。jvm多執行緒併發操作時,每個執行緒都有自己的計數器。

每個執行緒都有自己的計數器,則肯定有自己的虛擬機器棧。虛擬機器棧儲存每個方法的區域性變數。a a = new a() 左邊是棧,右邊在堆。執行緒呼叫每個方法時,都會建立乙個棧幀。棧幀裡有這個方法的區域性變數表,運算元棧,方法出口,動態鏈結等。

存放例項物件。棧幀裡區域性變數就是這個例項物件的位址。

native

JVM(二)記憶體區域

堆總被分為兩個部分 新生代和老年代,其中新生代中又被分為eden區和survivor區,survivor區由form survivor和to survivor組成 具體的gc 物件分配方面會在後面的文章講到 在棧幀中一般來說兩個棧幀是不會相互有關係的,都是獨立存在的。但是在某些情況下,會使兩個獨立的...

JVM的記憶體區域劃分

jvm的記憶體區域劃分 在j a語言當中,記憶體是如何劃分的呢?由於j a程式是交由jvm執行的,所以我們在談j a記憶體區域劃分的時候事實上是指jvm記憶體區域劃分。在討論jvm記憶體區域劃分之前,先來看一下j a程式具體執行的過程 如上圖所示,首先j a源 檔案 j a字尾 會被j a編譯器編譯...

jvm系列 一 jvm記憶體區域與溢位

string s2 new string jiajun string s6 new string jiajun system.out.println s2 s6 string s6 new string jiajun string s1 jiajun system.out.println s1 s6...