在下面的内容中,将简要介绍几个和C#相关的重要概念。
1.内存分配
在新进程初始化时,运行时会为进程保留一个连续的地址空间区域,这个保留的地址空间被称为托管堆。托管堆维护着一个指针,用这个指针指向将在堆中分配的下一个对象的地址。开始该指针设置为指向托管堆的基址,在托管堆上部署了所有引用类型。当应用程序创建第一个引用类型时,会为托管堆的基址中的类型分配内存。当应用程序创建下一个对象时,垃圾回收器在紧接第一个对象后面的地址空间内为它分配内存。只要地址空间可用,垃圾回收器就会继续以这种方式为新对象分配空间。
从托管堆中分配内存要比非托管内存分配速度快。由于运行时通过为指针添加值来为对象分配内存,所以这几乎和从堆栈中分配内存一样快。另外,由于连续分配的新对象在托管堆中是连续存储的,所以应用程序可以快速访问这些对象。
2.释放内存
垃圾回收器的优化引擎很重要,它能够根据所执行的分配决定执行回收的最佳时间。垃圾回收器在执行回收时,会释放应用程序不再使用的对象的内存。它通过检查应用程序的根来确定不再使用的对象。每个应用程序都有一组根。每个根或者引用托管堆中的对象,或者设置为空。应用程序的根包含全局对象指针、静态对象指针、线程堆栈中的局部变量和引用对象参数以及CPU寄存器。垃圾回收器可以访问由实时(JIT)编译器和运行时维护的活动根的列表。垃圾回收器对照此列表检查应用程序的根,并在此过程中创建一个图表,其中包含所有可从这些根中访问的对象。
3..NET Framework类库
.NET Framework包括三部分,分别是类、接口和值类型。它们可以加速和优化开发过程并提供对系统功能的访问。为了便于语言之间进行交互操作,.NET Framework类型是符合CLS的,所以可以在任何编程语言中使用,只要这种语言的编译器符合公共语言规范(CLS)。
.NET Framework类型是生成.NET应用程序、组件和控件的基础。.NET Framework中的类能够实现如下功能。(www.xing528.com)
1)表示基础数据类型和异常。
2)封装程序中的数据结构。
3)执行I/O操作。
4)访问和加载类型相关的信息。
5)调用.NET Framework安全检查。
6)提供数据访问、多客户端GUI和服务器控制的客户端GUI。
.NET Framework提供一组丰富的接口以及抽象类和具体(非抽象)类。可以按原样使用这些具体的类,或者在多数情况下从这些类派生自己的类。若要使用接口的功能,既可以创建实现接口的类,也可以从某个实现接口的.NET Framework类中派生类。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。