黑马程序员技术交流社区

标题: heap和stack有什么区别 [打印本页]

作者: ★魔_➩τ咒    时间: 2014-5-25 04:45
标题: heap和stack有什么区别
heep (堆)是一个可动态申请的内存空间,一般所有创建的对象都放在这里。
stack (栈)是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量。
stack (栈)的空间小,但速度比较快, 存放对象的引用,通过栈中的地址索引可以找到堆中的对象。

作者: 丁绍然    时间: 2014-5-25 08:37
栈(java stacks)也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈用于存储局部变量表、操作栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。            
堆(java Heap)是java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。
       
作者: youcyou    时间: 2014-5-25 09:02
学习了  
作者: 247033993@qq.co    时间: 2014-5-25 11:35
这都研究的很深啊,我感觉我还没开窍呢
作者: 27ZJQ    时间: 2014-5-30 18:27
不懂!还没到这一步
作者: fenzheng    时间: 2014-5-30 18:30
一个是对内存,一个是栈内存
作者: code2014    时间: 2014-5-30 18:32
研究的太深了,学习了
作者: fenzheng    时间: 2014-5-30 18:33
栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。
堆是栈的一个组成元素,具体你看以看毕老师的视频,在第四天的视频好像,他分析的比较细
作者: 毛富强    时间: 2014-8-21 12:26
哦。。看视频  总看见  画了一个堆内存,和 栈内存。有点 明白了
作者: 静水流华    时间: 2014-9-10 17:59
学习了,真的收益匪浅
作者: 王者之风西昆仑    时间: 2014-12-23 14:33
果然总结的很言简意赅
作者: JSZMT黑马    时间: 2015-2-1 13:47
很好!。
作者: 行意天下    时间: 2015-2-2 08:25
没有正式准备走编程这条路之前,根本不知道栈和堆是什么概念,现在通过学Java渐渐的将代码与计算机内存联系起来,就能理解部分了。
作者: JIM026    时间: 2015-2-4 13:30
堆是整个系统的。你需要的的时候去申请。
栈是你线程的。
作者: jipeng    时间: 2015-4-11 21:56
回答的比较透彻   哈哈
作者: zhubingg    时间: 2015-6-2 22:03
嗯 ,写的有点简单
作者: 向天宣战    时间: 2015-6-6 08:48
学习了。。。。。
作者: 胡诗亮66    时间: 2015-6-6 21:25
栈内存中,先进后出,弹栈
作者: xiaoxiaofei    时间: 2015-9-5 00:26
太好了,学习中,,,
作者: a1441114    时间: 2015-10-18 21:10
研究的好深啊,学习了。
作者: 怀瑾    时间: 2015-11-7 18:34
学习了,谢谢楼主
作者: Juice.cy.wang    时间: 2015-11-29 00:07
java要细究的话,一年你都学不完
作者: innovator    时间: 2016-5-18 14:37
学习中,要知其然,并知其所以然
作者: HeiMa2Wangkunpe    时间: 2016-7-23 00:31
感谢分享,懂得分享的人最美!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2