news 2026/5/3 21:40:12

栈和堆的概念

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
栈和堆的概念

一、比方

  • 栈(Stack)= 随身口袋 / 桌面空间小、拿放东西超快,用完随手清空,自己自动收拾,不用你管。
  • 堆(托管堆 Managed Heap)= 大仓库空间超大、放大件东西,放进去慢,自己不会自动收拾,要等保洁阿姨(GC 垃圾回收)来清理。

二、栈 Stack(线程栈)

特点

  1. 自动分配、自动销毁进入方法就开辟空间,方法执行完立马清空
  2. 速度极快,内存是连续的。
  3. 存放什么
    • 局部值类型:int、double、bool、struct、DateTime
    • 引用类型的地址(指针)(不是对象本身,只是仓库门牌号)
      void Test() { int a = 10; // 直接放栈上 string s; // 栈上存一个地址位置,暂时没指向仓库 } // 方法结束 → 栈直接清空,a、s 全部消失

      一句话 栈就是临时工作台,方法用完就扔,自动清理。

三、托管堆

C# 里说的,默认就是托管堆

特点

  1. 空间巨大,可以存很大、很多对象。
  2. 不会自动释放,靠GC 垃圾回收定时清理没人用的对象。
  3. 存放什么
    • new 出来的所有引用类型对象
    • class 实例、字符串、数组、集合 List 等真实本体数据
      string s1 = "abc"; Person p = new Person();
    • 栈上:s1、p 只存地址编号

    • 托管堆:真正存"abc"字符串、Person 对象的所有数据

一句话

堆就是大仓库,放引用类型真实数据,GC 帮你打扫垃圾。

string s1 = "abc"; string s2 = s1; s2 = "def";

内存全过程:

  1. s1上,存一个地址 → 指向托管堆里的"abc"
  2. s2 = s1:栈上复制地址,s1、s2 都指向堆里同一个"abc"
  3. s2 = "def":在托管堆新建"def",把 s2 栈上的地址改成新地址
    • s1 还指着老的"abc",所以s1 不变

总结

特性栈 Stack托管堆 Heap
大小超大
速度极快较慢
谁管理系统自动,方法结束就清GC 垃圾回收定时清理
存什么值类型、引用类型的地址new 出来的对象、字符串、数组本体
生命周期随方法消失没人引用了才被 GC 回收

值类型放栈上,用完自动亡;引用地址蹲栈上,对象本体住堆仓。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 21:38:29

xFormers真是Stable Diffusion显存救星?实测对比+你可能不知道的副作用

xFormers:Stable Diffusion显存优化的双刃剑实践指南 在Stable Diffusion用户群体中,xFormers几乎成了显存优化的代名词。这个由Facebook Research开源的Transformer加速库确实能在NVIDIA显卡上创造奇迹——将高分辨率图像生成的显存占用降低30%-50%&am…

作者头像 李华
网站建设 2026/5/3 21:35:05

Betaflight Configurator终极指南:3分钟快速上手无人机配置工具

Betaflight Configurator终极指南:3分钟快速上手无人机配置工具 【免费下载链接】betaflight-configurator Cross platform configuration and management application for the Betaflight firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight-conf…

作者头像 李华
网站建设 2026/5/3 21:29:26

AI教材编写新利器!一键低查重生成20万字教材,细节把控一步到位!

借助AI工具加速教材编写 在编写教材的过程中,进度总是显得缓慢至极,常常踩到“慢节奏”的各种雷点。尽管框架和资料已准备妥当,内容的撰写却难以推进——一句话反复推敲了半天,依旧觉得表达欠妥;章节之间的衔接语言&a…

作者头像 李华
网站建设 2026/5/3 21:16:32

佳维思科技简配铁路车号AI视觉识别系统

佳维思科技铁路车号AI视觉识别系统,利用RFID铁路车号识别技术与AI视觉分析技术相结合,完成铁路车厢信息的识别,识别的信息包括车型、车号、载重、自重、换长等。本系统产品分为低配、简配、标配、高配等四个等级。 简配铁路车号AI视觉识别系统…

作者头像 李华