JVM(六)記憶體區域方法區

2021-09-29 10:08:41 字數 384 閱讀 9864

是什麼?

1.是各個執行緒共享的記憶體區域,它用於儲存已被虛擬機器載入的類資訊、常量、靜態變數、即時編譯器編譯後的**等資料

2.什麼是類資訊:類版本號、方法、介面

為什麼?

1.記憶體中存放類資訊、靜態變數等資料,屬於執行緒共享的一塊區域

2.hotspot使用永久代來實現方法區

3.jrockit、ibm沒有永久代概念,在堆內管理

特點?

1.並非資料進入了方法區就如永久代的名字一樣「永久」存在了。這區域的記憶體**目標主要是針對常量池的**和對型別的解除安裝

2.方法也會丟擲outofmemoryerror,當他無法滿足記憶體分配時

二。JVM記憶體區域

jdk1.8之前,代表jvm內一塊區域。jdk1.8之後,也就是元空間metaspace。存放類,靜態變數,常量池。總之與類有關的都在方法區。類一般先載入進方法區。寫好的 被翻譯成位元組碼,對應各種位元組碼指令。計數器就是記錄當前位元組碼指令的位置。jvm多執行緒併發操作時,每個執行緒都有自己的計數...

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編譯器編譯...