c#-C# 内存分几部分啊?堆、栈、静态存储区,还有别的没?

问题描述

C# 内存分几部分啊?堆、栈、静态存储区,还有别的没?

关于内存分类,有一篇关于C++的,讲得很详细,但哪位大神给介绍一下C#的呢,也是五部分吗?

解决方案

首先分为两部分 寄存器和内存(包括缓存)

内存分为两部分 代码和数据

数据分为两部分 静态存储区和运行时存储

运行时存储分为 堆栈 和 堆
静态存储分为 全局静态存储 和 常量

解决方案二:

静态存储区、堆和栈的区别
静态存储区、堆和栈的区别
静态存储区、堆和栈的区别

解决方案三:

代码区,堆,栈,静态区。

解决方案四:

http://blog.csdn.net/caozhenyu/article/details/9297605

解决方案五:

代码区,堆,栈,静态区。

时间: 2024-11-01 20:31:25

c#-C# 内存分几部分啊?堆、栈、静态存储区,还有别的没?的相关文章

c-C/C++内存分几部分啊?堆、栈、静态存储区,还有别的没?

问题描述 C/C++内存分几部分啊?堆.栈.静态存储区,还有别的没? C/C++ 的内存分几部分啊?堆.栈.静态存储区,还有别的没?每部分的具体作用是什么? 解决方案 首先分为两部分 寄存器和内存(包括缓存) 内存分为两部分 代码和数据 数据分为两部分 静态存储区和运行时存储 运行时存储分为 堆栈 和 堆 静态存储分为 全局静态存储 和 常量 解决方案二: 我自己画了个图,可以参考下. 解决方案三: 静态存储分为 全局静态存储 还有文字常量区吧, 解决方案四: http://www.cnblog

【程序5大区】堆、栈、自由存储区、全局/静态存储区、常量存储区

五大内存分区  在C++中,内存分成5个区,他们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区.  栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区.里面的变量通常是局部变量.函数参数等.  堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete.如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收.  自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free

全局静态存储区、堆区和栈区深入剖析_C 语言

在C++中,内存可分为系统数据区,自由存储区,文本区,const数据区,全局静态区,堆区和栈区.其中,系统数据区存放的是系统数据,我们是不能自由访问的,有时候windows系统会突然弹出一个消息框,内容是"内存不能为read"就是错误访问系统数据区的结果:自由存储区用来存放由C延伸而来的malloc()函数所分配的数据:文本区存放着我们的函数代码,我们调用函数时的底层行为就类似于先去操作一个指针,而这个指针就指向函数指令所在的地址,也就是在文本区中:const数据区,顾名思义,就是存放

C++中静态存储区与栈以及堆的区别详解_C 语言

学习c++如果不了解内存分配是一件非常可悲的事情.而且,可以这样讲,一个C++程序员无法掌握内存.无法了解内存,是不能够成为一个合格的C++程序员的.一.内存基本构成可编程内存在基本上分为这样的几大部分:静态存储区.堆区和栈区.他们的功能不同,对他们使用方式也就不同.静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.它主要存放静态数据.全局数据和常量.栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放.栈内存分配运算

java内存管理(堆、栈、方法区)

java内存管理 简介 首先我们要了解我们为什么要学习java虚拟机的内存管理,不是java的gc垃圾回收机制都帮我们释放了内存了吗?但是在写程序的过程中却也往往因为不懂内存管理而造成了一些不容易察觉到的内存问题,并且在内存问题出现的时候,也不能很快的定位并解决.因此,了解并掌握Java的内存管理是我们必须要做的是事,也只有这样才能写出更好的程序,更好地优化程序的性能. 概述 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁

Java虚拟机:JVM内存分代策略

Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略. 为什么要分代? 堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中.给堆内存分代是为了提高对象内存分配和垃圾回收的效率.试想一下,如果堆内存没有区域划分,所有的新创建的对象和生命周期很长的对象放在一起,随着程序的执行,堆内存需要频繁进行垃圾收集,而每次回收都要遍历所有的对象,遍历这些对象所花费

java 堆 栈 方法区的简单分析

<一>  基础数据类型(Value type)直接在栈(stack)空间分配,方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收.引用数据类型,需要用new来创建,既在栈空间分配一个地址空间(reference),又在堆空间分配对象的类变量(object) .方法的引用参数,在栈空间分配一个地址空间,并指向堆空间的对象区,当方法调用完成后从栈空间回收.局部变量 new 出来时,在栈空间和堆空间中分配空间,当局部变量生命周期结束后,栈空间立刻被回收,堆空间区域等待GC回收. 方法调用

内存机制-关于动态存储与静态存储的区别

问题描述 关于动态存储与静态存储的区别 什么时候要用到动态存储呢?它在用的时候还要指定大小,和静态分配区别在哪呢? 解决方案 运行的时候若由用户指定了一个大小n,程序接下来就可以这样分配int *arr = (int *) malloc ( sizeof(int) * n ); 解决方案二: 编译的时候无法确定大小的,只能用动态存储.另外,程序中可能使用,也可能不使用的存储,用动态存储可以提高性能. 解决方案三: 我是说编译时无法确定大小.而不是说无法确定大小.malloc中指定变量,而变量来自

请问C#内存分布情况,例如堆栈 全局静态区 代码区?最好有实例?多谢多谢

问题描述 请问C#内存分布情况,例如堆栈全局静态区代码区?最好有实例?多谢多谢 解决方案 解决方案二:我也想知道这个,帮忙顶一下,,看金旭亮老师的.net2.0面向对象编程揭秘上有说,,但是还不明白解决方案三:这些东西都是有CLR来管理的,作为初学者我觉得不需要把精力和时间放在这里(实际上你就算知道了,CLR也没有太多地方供你操作这些东西),如果你真对这些感兴趣,学C++.解决方案四:我也想学习哈关于内存和缓存,但是一直都没有什么学习的头绪,希望有经验交流哈啊....顶了....解决方案五:还有