1. heap (堆)是一个可动态申请的内存空间,一般所有创建的对象和数组都放在这里.stack (栈)是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量.stack (栈)的空间小,但速度比较快, 存放对象的引用,通过栈中的地址索引可以找到堆中的对象. 2. stack的空间由操作系统自动分配和释放, heap的空间是手动申请和释放的,heap常用new关键字来分配. stack空间有限,heap的空间是很大的自由区. 在Java中, 若只是声明一个对象,则先在栈内存中为其分