栈和堆的区别

堆栈空间分配区别

1、栈:由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;
2、堆: 一般由程序员分配释放,若程序员不释放,程序结束时可能由操作系统回收,分配方式倒是类似于链表。

堆栈缓存方式区别

1、栈使用的是一级缓存(一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率。一级缓存越大,CPU的运行效率越高,但受到CPU内部结构的限制,一级缓存的容量都很小), 他们通常都是被调用时处于存储空间中,调用完毕立即释放;
2、堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。

堆栈数据结构区别

堆:堆可以被看成是一棵树,如:堆排序;   
栈:一种先进后出的数据结构。

为了解决上述问题,IE9把BOM和DOM对象都转换成了真正的JavaScript对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JVM是基于堆栈的虚拟机.JVM为每个新创建的线程都分配一个堆栈.也就是说,对于一个Java程序来说,它的运行就是...
    慶孟國阅读 206评论 0 0
  • 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就...
    木有鱼丸啦阅读 576评论 0 0
  • 安装插件 原因是:墙掉了logstash的默认gem source 修改 gem source 为国内源: cd ...
    g0阅读 459评论 0 0
  • 药品回扣还能走多远 作为一个职场小白,不顾上级医师阻止出院,坚持让姑妈出院的背后,究竟隐藏了多少功与利。 这是一个...
    AmiDuan阅读 191评论 0 0
  • Sometimes we might forget our password, but it is stored...
    Hackjutsu阅读 220评论 0 0