C# 复习、笔试全攻略(一、.NET 框架)
开篇语 :
本系列专题主要介绍、罗列和总结了一些有关C#的基础知识。
旨在面试前或想复习C#基础知识时看看,希望对大家有所帮助。
如发现错误,还望多多指教!
一、.NET Framework 的特点
— 多平台:它可以在广泛的计算机上运行,包括从服务器、桌面机到PDA和移动电话。
— 行业标准:它使用行业标准的通信协议,比如XML、HTTP、SOAP和WSDL。
— 安全性:它能提供更加安全的执行环境,即使有来源可疑的代码存在。
二、.NET Framework 的组成
.NET Framework由三部分组成的:
— CLR (Common Language Runtime,公共语言运行库),它是.NET Framework的核心组件,在操作系统的顶层并管理程序的执行。
它在运行期间管理程序的执行,包括以下内容:
— 代码安全验证
— 执行代码
— 自动垃圾收集
— 通过访问BCL得到广泛的编程功能,包括如WEB服务和数据服务之类的功能
— BCL (Base Class Library,基类库),它包括以下一些类:
— 通用基础类:比如字符串操作、安全和加密
— 集合类:它实现了列表、字典、散列表以及位数组
— 线程和同步类:这些类用于创建多线程程序
— XML类:这些类用于创建、读取以及操作XML文档
— 编程工具,它包括:
— Visual Studio集成开发环境
— .NET兼容编译器(例如:C#、VB、JScript和托管的C++)
— 调试器
— 服务器端改进,比如ASP.NET
三、代码的编译和运行过程
— 编译器编译 源代码 后生成名为 程序集 的输出文件,程序集可以是可执行文件或DLL
— CIL (Common Intermediate Language。公共中间语言),它是程序集里的代码。(它还有其他两个术语:IL、MSIL)
程序集包含的信息中,包括下列项目:
— 程序的 CIL
— 程序中使用的类型的元数据
— 对其他程序集引用的元数据
— CIL 在CLR运行时被JIT编译器成 本机代码。在运行时,CLR执行下面的步骤:
— 检查程序集的安全性
— 在内存中分配空间
— 把程序集中的可执行代码发送给 JIT,把其中的一部分编译成本机代码
四、CLI — 公共语言基础结构
— CLI ,它把所有.NET框架的组件连结成一个内聚的、一致的系统,它展示了系统的概念和架构,并详细说明了所有软件都必须坚持的规则和约定。
— CLI 的重要组成部分:
— CTS (Common Type System,公共类型系统),它定义了那些在托管代码中一定会使用的类型的特征。
— 它定义了一组丰富的内置类型,以及每种类型确定的、详细的特性
— 它最重要的特征之一是所有类型都继承自公共的积累—Object
— CLS (Common Language Specification,公共语言规范),详细说明了一个.NET兼容编程语言的规则、属性和行为。
— 其主题包括数据类型、类结构和参数传递
面试锦囊
1 、有面试或笔试过的都知道咯,有关.NET Framework中的一些缩写是常考的,所以我把它们罗列如下,方便记忆.
CLR (Common Language Runtime,公共语言运行库)
- GC (Garbage Collector,垃圾收集)
- JIT (Just-in-Time,实时编译器)
- BCL (Base Class Library,基类库)
- FCL (Framework Class Liarbry,框架类库)
DLL
- CIL (Common Intermediate Language。公共中间语言)
- IL (Intermediate Language)
- MSIL (Microsoft Intermediate Language)
CLI (Common Language Infrastructure,公共语言基础结构)
- CTS (Common Type System,公共类型系统)
- CLS (Common Language Specification,公共语言规范)
2、GC是什么? 为什么要有GC?
答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc();
Runtime.getRuntime().gc();
3、 还有一个就是,程序的编译和运行过程,具体的窝就不多说,附张图片,大家一看就明白了。
本节结束语:
由于本节主要都是一些理解和概念性知识,所以也就没什么总结性的东西,只需理解和牢记就行了!
如果大家觉得本节还将就,就给小弟顶一个咯!呵呵....!
有关本系列以后章节,还望继续关注!
作者:Boyces http://www.cnblogs.com/BoyceFu/