宝哥软件园

堆和栈的区别:先进先出

编辑:宝哥软件园 来源:互联网 时间:2021-12-05

堆和栈的区别:

堆和栈的区别先进先出_

一、堆栈空间分配区别:

1.栈(操作系统):由操作系统自动分配和释放,用于存储函数的参数值和局部变量的值。它的操作模式类似于数据结构中的栈;

2.堆(操作系统):一般由程序员分配和释放。如果程序员不释放它,操作系统可能会在程序结束时回收它。分配方法类似于链表。

二、堆栈缓存方式区别:

1.栈使用一级缓存,调用时通常在存储空间,调用后立即释放;

2.堆存储在L2缓存中,其生命周期由虚拟机的垃圾收集算法决定(一旦成为孤立对象,就无法回收)。所以调用这些对象的速度相对较低。

堆:在内存中,存储引用数据类型,不能确定引用数据类型的大小。堆实际上是一个具有链表结构的存储空间,它使用内存中分散的空间。堆的大小直接由引用类型的大小决定,引用类型大小的变化直接影响堆的变化。

堆栈:它是存储在内存中的值类型,大小为2M。如果超过,将报告错误,内存将溢出。

三、堆栈数据结构区别:

堆(数据结构):堆可以看作一棵树,比如:堆排序;

堆栈(数据结构):先进先出的数据结构。

特点:先进后出

对于FIFO,由于Linklist的底层实现是链表结构,所以我们用Linklist来探究什么是FIFO。

代码如下:

堆和栈的区别先进先出_

运行结果:

堆和栈的区别先进先出_

根据这个简单的例子,我们可以看到,通过for循环,我们按照0、1、2、3、4,

执行delete方法时,删除4,最终遍历结果为3,2,1,0。

所以它体现了栈的特点:先入后出。

更多资讯
游戏推荐
更多+