首页 > 其他 > 详细

3.C#基础篇-->堆和栈

时间:2014-04-12 10:55:57      阅读:508      评论:0      收藏:0      [点我收藏+]
前言

    堆与栈对于理解.NET中的内存管理、垃圾回收、错误和异常、调试与日志有很大的帮助。垃圾回收的机制使程序员从复杂的内存管理中解脱出来,虽然绝大多数的C#程序并不需要程序员手动管理内存,但这并不代表程序

员就无需了解分配的对象是如何被回收的,在一些特殊的场合仍需要程序员手动进行内存管理。

堆栈基础

    什么是栈(stack)?

  栈是一个内存数组,是一个LIFO(last-in first-out,后进先出)的数据结构。由高内存地址指向低内存地址,并且内存分配是连续的。

  栈存储几种类型的数据:值类型的值,程序当前的执行环境和传递给方法的参数。

  栈的特征:数据只能从栈的顶部插入和删除;把数据放入栈顶称为入栈(push);把数据从栈顶移除称为出栈(pop);

  bubuko.com,布布扣

  什么是托管堆(heap)?

  堆是一块内存区域,在这里可以分配大块的内存给某类型的数据。与栈不同,堆里的内存可以任意的顺序存入和移除。

  虽然程序可以在堆里保存数据,却不能显示的删除它们。CLR的自动GC(垃圾回收机制)在判断出代码不在访问某数据项时,自动清除无主的堆数据。

  bubuko.com,布布扣

3.C#基础篇-->堆和栈,布布扣,bubuko.com

3.C#基础篇-->堆和栈

原文:http://www.cnblogs.com/dmeiyang002/p/3659694.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!