在 Java 语言里堆(heap)和栈(stack)里的区别
栈(stack)与堆(heap)都是 Java 用来在 Ram 中存放数据的地方。 与 C++不同, Java 自动管理栈和堆, 程序员不能直接地设置栈或堆。栈的优势是, 存取速度比堆要快, 仅次于直接位于 CPU 中的寄存器。 但缺点是, 存在栈中的数据大小与生存期必须是确定的, 缺乏灵活性。 另外, 栈数据可以共享(详见下面的介绍)。堆的优势是可以动态地分配内存大小, 生存期也不必事先告诉编译器, Java 的垃圾收集器会自动收走这些不再使用的数据。 但缺点是, 由于要在运行时动态分配内存,