堆和栈的区别及堆区和栈区的区别


JVM内存的划分有五片:寄存器、本地方法区、方法区、栈内存、堆内存

堆区和栈区属于内存模型,栈和堆属于数据结构。

栈区(stack):编译器自动分配释放,速度快,存放局部变量,变量的生命周期结束会自动释放;

堆区(heap):一般是由程序员分配释放,速度慢,存放数组和对象,对象的生命周期结束需要垃圾回收机制。

栈:是一种运算受限的线性表,其限制是指只仅允许在表的一端进行插入和删除操作

堆:是一种常用的树形结构,一种特殊的完全二叉树

猜你喜欢

转载自www.cnblogs.com/BruceV/p/11887088.html