黑马程序员技术交流社区

标题: 栈与堆区别? [打印本页]

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

作者: a670987122    时间: 2016-3-17 22:01
赞一个~~
作者: Sparky    时间: 2016-3-17 22:37
好好好好好好好好好好好好好好好好好好好好好好好好好好
作者: duanbozhi    时间: 2016-3-17 22:57
挺好。。。。。。。。。。。。
作者: 赵国政    时间: 2016-3-18 00:20
不错 !谢谢
作者: huanlong579    时间: 2016-3-18 01:08
来赞一个~
作者: and4576sdo    时间: 2016-3-18 01:17
赞一个!!!
作者: Banana_uSuOO    时间: 2016-3-18 08:06
人工置顶!
作者: 兵蜂    时间: 2016-3-18 16:50
分析的很透彻,谢谢
作者: 淡然无味    时间: 2016-3-18 18:04
堆中是对象,栈中是变量,
作者: feng9639    时间: 2016-3-18 18:16
  堆中存的是对象。栈中存的是基对象的引用。




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