暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

每日一问:为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?

胡金水 2019-09-10
611

公众号内回复:面试宝典,可获得《面试通关宝典》一部

答:

  1. 从软件设计的角度看,栈代表了处理逻辑,而堆代表了数据。这样分开,使得处理逻辑更为清晰。分而治之的思想。

  2. 堆与栈的分离,使得堆中的内容可以被多个栈共享;这种共享提供了一种有效的数据交互方式(例如:共享内存),同时堆中的共享常量和缓存可以被所有栈访问,节省了空间。

  3. 栈因为运行时的需要,比如保存系统运行的上下文,需要进行地址段的拆分。由于栈只能向上增长,因此就会限制住栈存储内容的能力。而堆不同,堆中的对象是可以根据需要动态增长的,因此栈和堆的拆分,使得动态增长成为可能,相应栈中只需记录堆中的一个地址即可。

参考:https://www.cnblogs.com/andy-zhou/p/5327288.html


如果觉得文章不错,可以扫描下方二维码进行关注。



文章转载自胡金水,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论