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