.NET Framework简介、数组、枚举

1.IL/MSIL/CIL Microsoft Intermediate Language)微软中间语言(IL是MSIL的缩写,译为中间语言)
2.CTS (Common Type System)通用类型系统
3.CLS (Common Language Specification)公共语言规范
4.CLR (Common Language Runtime)公共语言运行时(也有的叫公共语言运行库)
5.JIT (Just in time)即时编译器
6.CLI 公共语言基础架构(Common Language Infrastructure)
7. BCL 基础类库(Base Class Library)
8. FCL 框架类库(Framework Class Library)

CLR是.NET Framework的核心
CLR的核心是CTS和CLS
CTS是通用类型系统(Common Type System)
CLS是公共语言定义(Common Language Specification)
CLR是公共语言运行时(Common language runtime)
CTS定义了一组语言编译器必须遵循的规则,以定义、引用、使用和存储引用类型和值类型

什么是QC?  垃圾收集 垃圾回收       GC.Collect() 方法  作用:强制进行垃圾回收

.NET的GC机制两个问题:  

首先,GC并不是能释放所有的资源。它不能自动释放非托管资源。   第二,GC并不是实时性的,这将会造成系统性能上的瓶颈和不确定性 GC并不是实时性的,这会造成系统性能上的瓶颈和不确定性。

MSDN的解释:.NET Framework 是为其运行的应用程序提供各种服务的托管执行环境 它包括两个主要组件:作为处理运行的应用程序的执行引擎的公共语言运行时 (CLR);以及 .NET Framework 类库

Language complier:语言编译器,每种语言基于.net的语言都会有一个面向CLR的托管模块,也可以理解为语言编译器,把对应的语言编译成MSIL

MSIL:微软中间语言,CLR负责把中间语言编译成为执行程序的计算机可以理解的语言,是一种介于介于高级语言和汇编语言的伪汇编语言.

托管代码与非托管代码
1、托管代码就是Visual Basic .NET和C#编译器编译出来的代码,托管代码在公共语言运行库(CLR)中运行 2、非托管代码是运行在公共语言运行库环境(CLR)的外部,由操作系统直接执行的代码。非托管代码必须提供自己的垃圾回收、类型检查、安全支持等服务

区别:
1、托管代码是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。 ????
2、托管代码独立于平台和语言,能更好的实现不同语言平台之间的兼容;非托管代码依赖于平台和语言。 ????
3、托管代码可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。
4、.Net有很多非托管的资源,比如StreamWriter、 Timer、数据库连接。


元数据:是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述。
元数据存储以下信息: 程序集的说明 类型的说明 属性
.NET Framework框架体系运行概述: 首先编写的C#源文件hello.cs通过C#编译器进行编译,编译成.NET 的PE文件结构,也就是exe文件格式,当程序运行时,Windows的Loader加载器不会负责该程序的内存分配,线程管理等工作,而是只负责跳转到CLR的执行引擎(EE)中,将控制权交由CLR,由CLR进行分配内存,线程管理,异常处理等。

.NET Framework 框架体系:

框架体系运行概述: 首先编写的C#源文件hello.cs通过C#编译器进行编译,编译成.NET 的PE文件结构,也就是exe文件格式,当程序运行时,Windows的Loader加载器不会负责该程序的内存分配,线程管理等工作,而是只负责跳转到CLR的执行引擎(EE)中,将控制权交由CLR,由CLR进行分配内存,线程管理,异常处理等。

猜你喜欢

转载自www.cnblogs.com/h0906/p/11140707.html