欢迎来到山海君的博客

遇见你,就像跋山涉水遇到一轮月亮,以后天黑心伤,就问那天借一点月光【天堂旅行团】  

堆与栈的区别

1.程序内存分区中的堆和栈
1.栈
栈中的内存是由操作系统自动分配和释放,用于存放临时参数数值,局部变量等。其操作方式类似于数据结构中的栈
2.堆
堆是由开发人员进行分配和释放的,若开发人员不释放,程序结束时由OS回收,其操作方式类似于数据结构中的链表
2.数据结构中的堆和栈
1.栈(stack)
定义:
他是一种具有先进后出性质的数据结构,也就是说后进去的先取出来(形象类比:一筒羽毛球,装羽毛球跟取羽毛球)
申请方式:
由程序员自己申请,并指明大小
申请效率:
由new分配的内存,相对效率和速度都较低,容易产生碎片,但由于是程序员自己申请操作,灵活性强使用方便
存储的数据类型:
存储值类型,即存储固定长度的数据。比如:整数,字符,结构,布尔,枚举
2.堆(Heap)
定义:
堆是一种经过排序的树形的数据结构,每个节点都有一个值
申请方式:
由系统分配
申请效率:
效率较快,速度较快,但程序员无法对其进行控制
存储的数据类型:
存储引用类型

posted @ 2021-11-17 20:13  山海君  阅读(118)  评论(0)    收藏  举报