堆栈的区别,优缺点

栈:存储基本数据类型、对象变量的指针;排列整齐的线性空间;速度快;不灵活;后进先出;编译器自动分配释放

堆:存储object类型;速度慢;灵活;先进先出;程序员分配,不释放的话可能由操作系统释放

解释:

为什么栈存取速度快,堆慢?

栈由系统自动分配,速度较快 ,使用一级缓存,用完就自动释放

堆程序员分配,速度慢,而且容易产生内存碎片,但是用起来方便,使用二级缓存,手动释放

为什么栈后进先出,堆先进先出?

后进先出:栈的概念是弹压,就像子弹壳装弹,一粒一粒压进去,但是打出来的时候是从上面打出来的,最先压进去的最后弹出来,如果进去顺序是123,打出来顺序是321,这就是后进先出

先进后出:队列的概念就是我们平时排队,按次序来,你排在第1个,那你就第一个轮到,就是先进先出,先到先来

你可能感兴趣的:(前端,后端)