参考回答:
1)申请方式:
栈由系统自动分配和管理,堆由程序员手动分配和管理。
2)效率:
栈由系统分配,速度快,不会有内存碎片。
堆由程序员分配,速度较慢,可能由于操作不当产生内存碎片。
3)扩展方向
栈从高地址向低地址进行扩展,堆由低地址向高地址进行扩展。
4)程序局部变量是使用的栈空间,new/malloc动态申请的内存是堆空间,函数调用时会进行形参和返回值的压栈出栈,也是用的栈空间。
本文向大家介绍 请你说一说堆和栈的区别?相关面试题,主要包含被问及 请你说一说堆和栈的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。它与数据结构中的堆是两回事,分配方式类似于链表。 区别
本文向大家介绍请你说一说堆和栈的区别?相关面试题,主要包含被问及请你说一说堆和栈的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 堆栈空间分配区别: 1、栈(操作系统):由操作系统自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈; 2、堆(操作系统):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。 二、堆栈缓存方
本文向大家介绍说一下堆栈的区别?相关面试题,主要包含被问及说一下堆栈的区别?时的应答技巧和注意事项,需要的朋友参考一下 功能方面:堆是用来存放对象的,栈是用来执行程序的。 共享性:堆是线程共享的,栈是线程私有的。 空间大小:堆大小远远大于栈。
本文向大家介绍请你来说一下Redis和memcached的区别相关面试题,主要包含被问及请你来说一下Redis和memcached的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)数据类型 :redis数据类型丰富,支持set liset等类型;memcache支持简单数据类型,需要客户端自己处理复杂对象 2)持久性:redis支持数据落地持久化存储;memcache不支持数据持久
本文向大家介绍请你来说一下GET和POST的区别相关面试题,主要包含被问及请你来说一下GET和POST的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、概括 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200
本文向大家介绍请你来说一下C++中struct和class的区别?相关面试题,主要包含被问及请你来说一下C++中struct和class的区别?时的应答技巧和注意事项,需要的朋友参考一下 在C++中,可以用struct和class定义类,都可以继承。区别在于:structural的默认继承权限和默认访问权限是public,而class的默认继承权限和默认访问权限是private。 另外,class