1. 程式人生 > >JVM:記憶體劃分總結

JVM:記憶體劃分總結

總結

1、所有執行緒共享的記憶體資料區:方法區,堆。而虛擬機器棧,本地方法棧和程式計數器都是執行緒私有的。

2、存放於棧中的東西如下:
  2.1 每個執行緒包含一個棧區,棧中只儲存基礎資料型別的物件和自定義物件的引用(不是物件)。物件都存放在堆區中。

2.2 每個棧中的資料(基礎資料型別和物件引用)都是私有的,其他棧不能訪問。
  2.3 方法的形式引數,方法呼叫完後從棧空間回收
  2.4 引用物件的地址,引用完後,棧空間地址立即被回收堆空間等待GC

3、存放於堆中的東西如下:

3.1 儲存的全部是物件,每個物件包含一個與之對應的class資訊

3.2Jvm只有一個堆區(heap)被所有執行緒共享,堆區中不存放基本型別和物件引用,只存放物件本身

 4、存放於方法區中的東西如下:

4.1 存放執行緒所執行的位元組碼指令

4.2 跟堆一樣.被所有執行緒共享.方法區包含:所有的class和static變數

4.3 常量池位於方法區中,見如下圖示說明