C# .NET面试精华:涵盖CLR、COM、JIT等核心知识点

需积分: 10 10 下载量 20 浏览量 更新于2024-09-10 3 收藏 337KB PDF 举报
1. **.NET基础知识** - CTS (Common Type System) 是Microsoft提交的CLI (Common Language Infrastructure) 规范的一部分,它定义了一个可在.NET运行时环境(CLR,Common Language Runtime)上执行的统一类型体系,确保跨平台的互操作性。公共语言规范(CLS)是CTS的一个子集,规定了所有.NET程序的基础标准。 - CLR是.NET的核心组件,它包含运行引擎和兼容CLI的类库,负责执行.NET代码。它与COM(Component Object Model)相比,提供了更灵活的依赖管理和元数据支持,使得组件间的交互更为高效和易于管理。 2. **编译优化与执行** - JIT (Just-In-Time) 编译器是.NET框架中的关键特性,它在遇到未预先编译为机器码的方法时,会动态地将IL(Intermediate Language)转换为本地代码。JIT首先检查本地缓存,如存在已编译版本,则直接执行;若无,它会解析方法存根并进行编译,提高了程序性能。 3. **程序集部署** - .NET全局应用程序缓存(GAC,Global Assembly Cache)是安装.NET应用的共享位置,强签名的程序集可以通过GUI工具如assemblyviewer或命令行工具gacutil.exe安全地添加。GAC遵循特定的目录结构,以确保正确存放和检索程序集。 4. **数据类型剖析** - .NET区分值类型(如int、float)和引用类型(如class、interface)。值类型创建新副本进行赋值,存储在栈上,内容比较;引用类型则传递对象引用,分配在堆上,比较时是引用地址而非内容。 5. **命名与类型一致性** - C#中的String和string实际上是同一类型的不同命名方式,这种命名策略常见于.NET语言中,如Object和object,便于区分但实际功能相同。 6. **内存管理** - 在.NET架构中,程序在内存中划分为堆栈和堆。堆栈用于存储局部变量和函数调用的帧,具有自动垃圾回收机制和较小的内存开销;堆则用于存储实例对象和其他需要长期生存的对象,需要手动管理内存释放。 这些面试题涵盖了.NET开发的关键概念,包括基础架构、性能优化、部署策略以及底层数据类型和内存管理的理解。准备面试时,对这些知识点的深入理解和实践经验是至关重要的。