面试题之一:堆栈区别

面试题之一:堆栈区别一 堆栈简介栈是编译器自动申请与分配 程序员无法进行控制的顺序线性结构 在程序结束时 由系统进行回收 堆是一种需要程序员手动申请的链表结构 申请的内存空间需要程序员手动释放 程序员不释放时系统可能回收

栈是编译器自动申请与分配,程序员无法进行控制的顺序线性结构,在程序结束时,由系统进行回收,堆是一种需要程序员手动申请的链表结构,申请的内存空间需要程序员手动释放,程序员不释放时系统可能回收。

二、 堆栈差别

结构上 顺序线性结构 链表
操作上 由编译器自动申请分配释放 程序员手动申请释放
速度上 较快 较慢
大小 1M~2M 受限于计算机操作系统有效的虚拟内存
申请效率 系统自动分配,所以速度较快 较慢
存储内容 进行函数调用的时候,第一条进入栈的指令是函数调用语句的下一条语句,接着从右到左将参数入栈,最后是函数体内的局部变量 堆头部存放了堆的一些记录(堆的大小)。具体内容由程序员决定

三、总结

栈在分配、处理速度上都比较快,但是自由度较小,无法控制,因为都是由编译器在系 统中事先规划好,而且栈的空间较小;堆的最大特点就是自由度高,想开辟多大的空间任意开辟(前提是有足够的虚拟空间),自由度非常大,但是较栈有的速度稍慢,因为在申请空间之后系统要在记录空闲空间的链表中查找一块不小于申请空间的内存分配。而这块申请的空间不一定刚好与申请的空间同等大小,造成碎片化

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228177.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午7:38
下一篇 2026年3月16日 下午7:38


相关推荐

  • VS中添加lib与dll

    VS中添加lib与dll参考与拓展阅读:https://blog.csdn.net/u012043391/article/details/54972127lib:1.附加包含目录—添加工程的头文件目录:项目->属性->配置属性->C/C++->常规->附加包含目录:加上头文件的存放目录;2.附加库目录—添加文件引用的lib静态库路径:项目->属…

    2022年7月26日
    10
  • 南风宝藏

    南风宝藏

    2026年3月15日
    2
  • STM32中3个延时函数「建议收藏」

    STM32中3个延时函数「建议收藏」第一个延时函数:voiddelay(u16num){u16i,j;for(i=0;i<num;i++)for(j=0;j<0x800;j++);}eg:delay(50);第二个延时函数:staticu8fac_us=0;//us延时倍乘数staticu16fac_ms=0;//ms延时倍乘数//初始化延迟函数//SYSTICK的时钟固…

    2022年6月20日
    42
  • 各类加载loading动画效果

    各类加载loading动画效果效果一: 一、HTMLLoading…二、CSS/*绿色背景*/body{   background:#4ea980;   margin:50px;}/*纯白色圈*/.loader{   text-indent:-9999em;   position:relative;   width:200px;   height:20

    2022年4月19日
    262
  • 【soap】soap协议是什么

    【soap】soap协议是什么一、什么是SOAP?    SOAP指简易对象访问协议    SOAP是一种通信协议    SOAP用于应用程序之间的通信    SOAP是一种用于发送消息的格式    SOAP被设计用来通过因特网进行通信    SOAP独立于平台    SOAP独立于语言    SOAP基于XML    SOAP很简单并可扩展

    2022年7月24日
    11
  • vim复制粘贴_vim怎么复制粘贴到其他程序

    vim复制粘贴_vim怎么复制粘贴到其他程序Vim复制粘贴探秘Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几十年,还没有完全掌握vim的功能,这也说明了vim的强大。而这样何尝不是一件好事呢,只要有的学习,就有的提高。最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置::setnoainosi取消了自动缩进和智能缩进,这样粘贴就不会错行了。但

    2025年11月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号