堆 对象存放在堆中; 每个Java程序运行在一个单独的JVM实例中,每个JVM实例唯一对应一个堆,多个线程会共享堆内存; 在运行过程中动态分配内存,存取速度缓慢; 由GC回收不用的空间; 栈 基本数据类型的变量存放在栈中; 引用变量存放在栈中; 以栈帧为单位,通过压栈和弹栈管理程序运行; 栈的大小和生存周期确定,存取速度更快; 通过压栈和弹栈回收不用的空间;