1、.NET是为其运行的应用程序提供各种服务的托管执行环境
2、CLR的核心是CTS
3、CLR是公共语言运行库。
第一交托管代码合并成程序及,也叫组件程序及中包含了一张叫做清单的模块。
第二。加载公共语言运行库
第三,执行程序级的代码
第四,生成本地代码
4、了解CLI历史。
垃圾回收 GC
什么是GC?
GC(Garbage Collector)如其名,就是垃圾收集,这里仅就内存而言。
GC工作的原理:GC遍历应用程序在Heap(堆)上动态分配的所有对象,通过识别他们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用,已经不再被应用程序所引用的对象就是已经死亡的对象。即所谓的垃圾,需要被回收。
.NET的GC机制两个问题:
首先,GC并不是能释放所有的资源。他不能自动释放非托管资源。
第二,GC并不是实时性的,这将会造成系统性能上的瓶颈和不确定性。
GC并不是实时性的,这会造成系统性能上的瓶颈和不确定性。
理解什么是元数据?
元数据:是一种二进制信息,泳衣对存储在公共语言运行库可移植可执行文件(PE)文件或存储在内存中的程序进行描述。
.NET Framework框架体系
框架体系运行概述:
首先编写的C#源文件hello.cs通过C#编译器尽心编译,编译成.NET的PE文件结构,也就是exe文件格式,当程序运行时,Windows的Loder加载器不会负责该程序的内存分配,线程管理等工作,而是只负责跳转到CLR的执行引擎(EE)中,将控制权交由CLR,由CLR进行分配内存,线程管理,异常处理等。
1、IL|MSIL|CIL Microsoft Intermediate Language微软中间语言(IL是MSIL的缩写,编译为中间语言)
2、CTS(Common Tyoe System)通用类型系统
3、CLS(Common Language Specification)公共语言规范
3、CLS
4、CLR
5、JIT(Just in time)即时编译器
6、CLI 公用语言基础架构(Common Language Infrastructure)
7、BCL 基础类库