asp.net内存中的栈和堆
来源:互联网 发布:厄米特矩阵的性质 编辑:程序博客网 时间:2024/05/19 17:10
asp.net中的内存大概分为栈区和堆区两种,两者的主要作用就是用来存储值类型和引用类型的。所以,在为大家讲解栈和堆之前,我们先了解一下asp.net中的值类型、引用类型这两个概念。
一、值类型
1.隐式派生自System.ValueType ,查看IL,隐式继承自ValueType
2.包括:int、char、double、float、long、short、byte、bool、enum、struct、decimal
3.值类型编译时操作系统为它分配的内存大小是一定的,如int类型占4个字节,char占一个字节。
二、引用类型
1.派生自System.Object
2.包括:字符串、数组、类、接口、委托
3.引用类型的数据大小是不固定的,运行时动态为他们分配内存。
通过上面的简单介绍相信大家已经对值类型和引用类型有了基本的了解。接下来就为大家讲解一下栈区和堆区。
三、栈和堆
1、栈区(stack) — 操作系统分配的一段连续的存储空间 ,其操作方式类似于数据结构中的栈。栈的空间是内存自维护的,即用完即清除。
2、堆区(heap) — 操作系统分配的一段不连续的存储空间,分配方式类似于数据结构中的链表。堆的空间的需要垃圾回收器回收释放。
上面的截图里,左边是栈区,右边是堆区。栈区的一个存储单元放一个值类型的变量,堆区的引用类型可以放在不连续的存储单元内。
通过两个概念的简单讲解,相信大家应该也能猜想到了,操作系统为值类型分配的内存是一定的,所以应该放在栈区,引用类型的大小是不确定的,所以应该放在堆区。
0 0
- asp.net内存中的栈和堆
- 内存中的堆和栈
- 内存中的堆和栈
- 内存中的堆和栈
- 内存中的堆和栈
- 内存中的堆和栈
- Java中的栈内存和堆内存
- JAVA中的栈内存和堆内存
- java中的栈内存和堆内存
- Java中的堆内存和栈内存
- java中的栈内存和堆内存
- Java中的栈内存和堆内存
- java中的栈内存和堆内存
- Java中的堆内存和栈内存
- JAVA中的堆内存和栈内存
- zz内存中的堆和栈
- 关于 内存中的 堆和栈
- java中的内存分配 堆和栈
- NYOJ 304 节能 (区间dp)
- Java中的泛型方法
- Apache与Tomcat的关系?
- cannot open file "C:\Program.obj"
- getline 输入无效的原因
- asp.net内存中的栈和堆
- StringUtils中 isNotEmpty 和isNotBlank的区别
- maven 下载 源码和javadoc命令
- Android 代码混淆
- datagrid中ajax传递中文参数乱码
- WebService 的创建,部署和使用
- PHP学习日记-检查数据库中某张表是否存在
- 秦安KinAn32口IP网口KVM切换器KC2132i—TEL:15035122463
- android(studio)之旅-Activity生存周期