.NET 内存分配笔记
2017-01-19 17:36
204 查看
阅读博客http://jonskeet.uk/csharp/memory.html的笔记(个人水平有限,如若翻译、记录有误,请提,谢谢~)
误区:引用类型保持在堆中,值类型保持在栈中。
问题:前半句正确,后半句“值类型保持在栈中”不正确。
值类型的存储位置:
1.局部变量都存于栈中,另外引用类型的变量(不是指引用类型本身,而是指定义的那个用来存放引用地址的变量)也存于栈中;
2.全局变量存于堆中,和对象存放在一起,同样的生命周期;
3.值类型的实例变量和值类型的变量位置相同。(有点不通顺,翻译水平不行,原文:Instance variables for a value type are stored in the same context as the variable that declares the value type.)例如:定义一个结构变量,若为全局变量,则结构内部的值类型遵循第2条,反之则遵循第1条;
4.所有的静态变量都存于堆中,而不管定义的是值类型还是引用类型,且不管有多少实例,只保留一份。
误区:引用类型保持在堆中,值类型保持在栈中。
问题:前半句正确,后半句“值类型保持在栈中”不正确。
值类型的存储位置:
1.局部变量都存于栈中,另外引用类型的变量(不是指引用类型本身,而是指定义的那个用来存放引用地址的变量)也存于栈中;
2.全局变量存于堆中,和对象存放在一起,同样的生命周期;
3.值类型的实例变量和值类型的变量位置相同。(有点不通顺,翻译水平不行,原文:Instance variables for a value type are stored in the same context as the variable that declares the value type.)例如:定义一个结构变量,若为全局变量,则结构内部的值类型遵循第2条,反之则遵循第1条;
4.所有的静态变量都存于堆中,而不管定义的是值类型还是引用类型,且不管有多少实例,只保留一份。
相关文章推荐
- .NET内存分配笔记
- java 编程思想笔记之this关键字(包括一些对方法在内存中的分配的解析) 推荐
- [学习笔记].NET中的内存分析
- C++ 内存分配 学习笔记
- .NET下的内存分配机制
- .C++ primer第二次阅读学习笔记(第18章:特殊工具与技术:优化内存分配)
- [笔记]dotNET内存的分配、指针
- 数据结构 学习笔记之:关于顺序栈中给结构体类型指针分配内存时,使用malloc和不使用malloc的疑惑之解惑!
- C#中“.NET技术”字符串的内存分配与驻留池
- 一起谈.NET技术,C#中字符串的内存分配与驻留池
- .net字符串内存的分配
- 内存分配笔记-内存分配概念和常见错误
- 尽量使用new/delete操作符,而不是malloc/free来分配内存-------Effective C++学习笔记
- 35、C++ Primer 4th笔记,特殊工具与技术,优化内存分配(2)
- C#中字符“.NET研究”串的内存分配与驻留池
- java 内存分配笔记集合 来源于各大高手
- .NET下的内存分配机制
- 34、C++ Primer 4th笔记,特殊工具与技术,优化内存分配(1)
- C/C++程序的内存分配与使用笔记
- nginx 源码学习笔记(七)——内存分配相关源码分析