以下代碼展示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棧內存中,並指向堆內存的兩個實例