栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

静态存储区域、栈、堆(通俗易懂)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

静态存储区域、栈、堆(通俗易懂)

程序所有的数据,也就是所有的变量,都是存储在内存中的。

静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。

栈空间比较小,但是读取速度快

堆空间比较大,但是读取速度慢

例如:栈就是商店,堆就是仓库,商店面积比较小找东西比较快。仓库面积大,放的东西也多,找起来也慢。

栈的特征:

数据只能从栈的顶端插入和删除

把数据放入栈顶称为入栈(push)

从栈顶删除数据称为出栈(pop)

内存中的栈,是由系统管理的

 例如:就好像一口井,每次往里面丢一块大石头,假设石头足够大,每层就只能放一块石头,那最后放的石头就在最上面,如果要把石头全部拿出来,最后放的石头最早被拿出来。

堆

堆是一块内存区域,与栈不同,堆里的内存能够以任意顺序存入和移除

GC Garbage Collector垃圾回收器

CLR的GC就是内存管理机制,我们写程序不需要关心内存的使用,因为这些都是CLR帮

我们做了。

画了两个红X 的data1和data2就是数据用完后续不用了,就会被垃圾回收器回收。不回收的话堆满了,后续的新数据就进不来了

这里的某些概念,只需要了解和知道的,不需要知道内在核心原理,我们知道汽⻋的引擎

是汽⻋的核心动力来源,我们不需要知道引擎是怎么造。

同样,上述是编译器开发者的事情。

想要了解栈和堆得存什么数据

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号