zoukankan      html  css  js  c++  java
  • C#中的堆和栈理解

    引言:程序运行时,它的数据必须存在内存中,一个数据需要多大内存、存储在什么地方以及如何存储都依赖于该数据的数据类型。

    1、什么是栈

    栈是一个内存数组,是一个LIFO(Last-In-First-Out 后进先出)的数据结构。

    栈主要存储如下几种数据:

    a、某些类型变量的值。

    b、程序当前的执行环境。

    c、传递给方法的参数

    栈的特征:

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

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

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


    4418040-86607b96d9ca3ff9.png

    什么叫堆?

    堆是一块内存区域,在堆里面可以分配较大块的内存用来存储某种数据类型的数据对象,和栈不同是的,堆里面的内存可以按照任何顺序进行存入和移除。


    4418040-a974cf57ed872e99.png

    注意:虽然程序可以在堆里面保存数据,但是不能显式的删除它们。CLR的GC(垃圾收集器)在判断出程序的代码将不会再访问某数据项的时候,会自动清楚无主的堆对象(托管对象)。

  • 相关阅读:
    好久没更新
    基于slick grid做infinite scroll(2)
    基于slick grid做infinite scroll(1)
    用REST访问ALM的Servlet
    Angularjs中provider,factory和service的不同
    粗糙版斗破苍穹网络阅读器
    将斗破苍穹按章分隔
    实战第一个云程序
    js变量提升
    Thread
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12352841.html
Copyright © 2011-2022 走看看