黑马程序员技术交流社区
标题:
栈与堆区别?
[打印本页]
作者:
贺庚
时间:
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