1. 程式人生 > >JVM堆記憶體、方法區和棧記憶體的關係

JVM堆記憶體、方法區和棧記憶體的關係

以下程式碼展示Java堆記憶體、方法區和Java棧記憶體之間的關係

package cn.liang.jvm;
public class SimpleHeap {
    private int id;
    public SimpleHeap(int id){
        this.id = id;
    }
    public void show(){
        System.out.println("My ID is " + id);
    }
    public static void main(String[] args) {
        SimpleHeap s1 = new SimpleHeap(1);
        SimpleHeap s2 = new SimpleHeap(2);
        s1.show();
        s2.show();
    }

}

引用關係圖:

  • SimpleHeap例項本身分配在堆記憶體中
  • 描述SimpleHeap類的資訊存放在方法區
  • main()函式中s1和s2區域性變數存放在Java棧記憶體中,並指向堆記憶體的兩個例項