1、什么是堆?

    堆是一块内存区域,在堆里可以分配大块的内存用于存储某类型的数据对象;

  堆的特征:

    1、堆里面的内存能够以任意顺序存入和移除;

    2、不能显示地删除程序在堆里面保存的数据;

    3、靠CLR的自动GC(垃圾收集器)判断并自动清除无主的堆对象,然后释放它;

    4、被释放对象的内存可以被重用;

2、什么是栈?

    栈是一个内存数组,是一个后进先出的数据结构;

  几种数据类型:

    1、某些类型变量的值;

    2、程序当前的执行环境;

    3、传递给方法的参数;

  几个普遍特征:

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

    2、把数据放到栈顶成为入栈;

    3、从栈顶删除数据成为出栈;

3、栈和堆什么区别?

    1、存放的数据类型不同;

    2、栈只能从顶端插入和删除,堆能够以任意顺序存入和移除;

    3、栈内存无需管理,也不受GC管理。当栈顶元素使用完毕,立马释放。而堆则需要GC(Garbage collection:垃圾收集器)清理;

    4、栈由系统自动分配,速度较快。但是无法控制。堆则是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般速度比较慢,而且容易产生内存碎片.

更多相关文章

  1. 通过IPIP.NET实现数据库来查询IP地址的实例
  2. 基于MVC5中的Model层开发数据注解_实用技巧
  3. 在.NET Core类库中使用EF Core迁移数据库到SQL Server的方法_实
  4. 仪器设备改造技术,实现测量数据上传到服务器的功能
  5. 如何快速生成数据的文本路径呢?C++实现文本路径生成
  6. C#中将DataGridView中的数据导入到Csv文件及导出到Excel
  7. C#如何连接数据库?OleDbConnection与SqlConnection的区别
  8. C++类的静态数据成员和静态成员函数
  9. 如何验证数据帮助类?验证数据帮助类的方法(代码示例)

随机推荐

  1. Android 让TextView变成Dialog
  2. Android系统开发之修改调试SystemUI
  3. popWindowdemo
  4. Activity四种启动模式之singleTask应用
  5. Android: Actions for BroadcastReceiver
  6. Android MediaExtractor 浅析
  7. android keymaster
  8. 理解Android进程创建流程(转)
  9. android 全部命令
  10. android虚拟按键NavigationBar的判断