Day01
1、CLR是公共语言进行时,将编程语言编译成计算机能识别的语言
2、CTS是公共类型系统,所有在.Net下的所有语言都适用这种类型
3、CLS公共语言定义就是定义公共语言的
4、JIT及时编译器
5、将托管代码合并成程序及,也叫做组件(dll),每一个程序集至少有一个model ,记录了程序集是怎么构成的。
6、CLR执行流程
(1)、将源代码编译成托管代码块,托管代码由中间语言和元数据组成,
(2)、将托管代码合并成程序集,也叫组件(dll),程序集中包含了一张叫做“清单”的模块,记录构成程序集模块构成的信息包括资源文件及需要引用自己的信息。
(3)、加载公共语言运行库
(4)、执行程序及的代码
(5)、生成本地代码
7、CLI公共语言基础架构,是一个开放的技术规范。定义了一个语言无关的跨体系结构的运行环境,CLR是一种规范的一种实现,CLI是具体做的实物
8、BCL基础类库,是一个公共编程框架,称为基类库;FCL是框架类库,提供了大粒度的编程框架,比如:ASP.NET,MVC,WPF
9、托管代码和非托管代码的区别:
(1)托管代码就是VB和C#编译器编译出来的代码,托管代码在公共语言运行库中运行
(2)非托管代码是能直接在机器上运行的代码,运行在公共语言运行库环境的外部,由操作系统直接执行的代码。非托管代码必须提供自己的垃圾回收,类型检查,安全支持等服务。
下午:
unsaft 可以用来修饰类、类的成员函数、类的全局变量,但不能用来修饰类成员的局部变量在公共语言运行时(CLR)中,不安全代码是指无法验证的代码。
垃圾回收 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 基础类库

浙公网安备 33010602011771号