A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hbk000 中级黑马   /  2015-4-7 00:48  /  1030 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hbk000 于 2015-4-7 23:39 编辑

栈和堆的区别是什么?
为什么说栈的速度快,堆的速度慢?
JVM在处理他们的时候,有什么区别?              

10 个回复

倒序浏览
区别:
1)栈内存用于存储各种变量及对象的引用;存储于栈内存的数据的大小和生存期是确定的,因而缺乏灵活性;
2)堆内存用于存储对象实体;在创建对象时动态分配;由于对象的生存期由程序的需求所决定,当没有引用再指向该对象的时候,垃圾回收机制会在某一时刻回收该部分内存并释放;
速度:
1)栈内存是静态分配的,并有系统底层的支持,有压栈出栈的指令,为其提供存储速度上的优势;
2)堆内存是在程序运行时动态分配的,存取较慢;
处理:
1)栈内存内的内存在数据使用完后自动释放;
2)堆内存中的对象由垃圾回收器在某一时刻回收释放

评分

参与人数 1技术分 +2 收起 理由
lwj123 + 2

查看全部评分

回复 使用道具 举报
~用思维导图做了总结,楼主可以看看

堆内存与栈内存.png (148.62 KB, 下载次数: 23)

堆内存与栈内存.png

点评

总结的真好!  发表于 2015-6-14 21:10
回复 使用道具 举报
好强大啊,受教了
回复 使用道具 举报
宸宸 发表于 2015-4-7 09:33
~用思维导图做了总结,楼主可以看看

哥们!终结的精辟
回复 使用道具 举报
tubao1991 发表于 2015-4-7 09:52
哥们!终结的精辟

;P你应该叫姐们。谢谢夸奖,总结的不是很好,但愿你们喜欢
回复 使用道具 举报
宸宸 发表于 2015-4-7 09:33
~用思维导图做了总结,楼主可以看看

强大的总结啊,收藏了!
回复 使用道具 举报
学习了。
回复 使用道具 举报
好详细,了解了
回复 使用道具 举报
太详细了,并且语言通俗易懂啊,彻底佩服!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马