Java heap 是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray等指令建立,它们不需要程序代码来显式地释放,堆是由垃圾回收GC-[Garbage Collection]来负责的 。
stack的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放基本类型的变量(,int, short, long, byte, float, double, boolean, char)、指令代码(对象的方法属于指令)和对象句柄 。
栈是FILO - first in, last out. 先进后出,能够自动释放。