python 堆_面试再问你什么是堆和栈,你就把这篇文章甩给他

本文深入浅出地介绍了栈和堆的概念及其在Java程序中的作用。栈负责程序运行,存储方法的局部变量及中间结果;堆则负责数据存储,主要用于存放引用数据类型。文章还讲解了栈帧的概念以及栈和堆在内存管理上的区别。
摘要由CSDN通过智能技术生成

栈:管程序如何运行的,程序如何执行,如何处理数据。(局部变量其实也是存在栈中的,引用数据类型在栈中存的是地址引用)(栈的空间就不需要那么大了)

堆:管数据存储的。(引用数据类型的存放,所以堆的空间是比较大的)

生活理解

28f742bd3e8127de21398afc3a4692c2.png

是不是很形象?哈哈

栈的作用

主管Java程序的运行,它保存方法的局部变量(8种基本数据类型、对象的引用地址)、部分中间的结果,并参与方法的调用和返回。我们先粗粒度感受一个栈的结构:

每个线程都有自己的栈,栈中的数据都是以栈帧(stack Frame)的格式为基本单位进行存储的。(栈中保存的就是一个个栈帧)

在这个线程上正在执行的每个方法都各自对应一个栈帧。方法和栈帧一一对应,一个方法的执行会伴随这栈帧入栈,一个方法的结束会拌嘴栈帧的出栈)

61e642ce14b663a9b9906cd88d1b96cf.png

栈中是否存在垃圾回收

不存在,栈中就是入栈出栈。

假如底层用数组实现的话,其实就是移动下标的。

模拟栈结构C语言代码:(栈用数组实现) https://www.jb51.net/article/69375.htm 栈和队列,是操作受限制的线性表,既然是线性表,那么你用顺序表,链表都可以实现。堆:利用完全二叉树的结构来维护一组数据


小编这里整理了一套Python入门基础教程,如何你打算学Python,或者已经在学Python的小伙伴,下面这些资料我相信应该非常适合你。

获取方式私信发送【资料】即可免费领取

Python实战案例

18c1f92ab1f739412d0610197b6288e2.png

Python自动化办公教程(超级详细)

92e52ede660f98e2a3001a5cdf66cc8d.png

Python入门电子书

fee3cc1230af998e78c36d400c245e78.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值