以下代码展示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栈内存中,并指向堆内存的两个实例