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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贺庚 中级黑马   /  2016-3-17 21:39  /  880 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   堆中存什么?栈中存什么?
    堆中存的是对象。栈中存的是基本数据类型和堆中对象的引用。一个对象的大小是不可估计的,或者说是可以动态变化的,但是在栈中,一个对象只对应了一个4btye的引用(堆栈分离的好处:))。
    为什么不把基本类型放堆中呢?因为其占用的空间一般是1~8个字节--需要空间比较少,而且因为是基本类型,所以不会出现动态增长的情况--长度固定,因此栈中存储就够了,如果把他存在堆中是没有什么意义的(还会浪费空间,后面说明)。可以这么说,基本类型和对象的引用都是存放在栈中,而且都是几个字节的一个数,因此在程序运行时,他们的处理方式是统一的。但是基本类型、对象引用和对象本身就有所区别了,因为一个是栈中的数据一个是堆中的数据。

评分

参与人数 2黑马币 +26 收起 理由
Sparky + 6
鹰隼展翼 + 20 赞一个!

查看全部评分

10 个回复

倒序浏览
赞一个~~
回复 使用道具 举报
好好好好好好好好好好好好好好好好好好好好好好好好好好
回复 使用道具 举报
挺好。。。。。。。。。。。。
回复 使用道具 举报
不错 !谢谢
回复 使用道具 举报
来赞一个~
回复 使用道具 举报
赞一个!!!
回复 使用道具 举报
Banana_uSuOO 来自手机 中级黑马 2016-3-18 08:06:55
8#
人工置顶!来自: iPhone客户端
回复 使用道具 举报
兵蜂 中级黑马 2016-3-18 16:50:15
9#
分析的很透彻,谢谢
回复 使用道具 举报
堆中是对象,栈中是变量,
回复 使用道具 举报
  堆中存的是对象。栈中存的是基对象的引用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马