C# 面试题(一)
1、c#中托管代码是什么?
托管代码是由公共语言运行库的代码,而不是由操作系统直接执行。托管代码也可以调用CLR的运行库服务和功能,比如GC,类型检查、安全支持等。这些服务和功能提供独立于开发语言的、统一的Managed Code应用程序行为。
2、c#中的非托管代码是什么?
非托管代码不由CLR公共语言运行库执行,而是操作系统直接执行的代码。非托管代码必须自己提供垃圾回收、类型检查、安全支持等服务。
3、IL语言如何在.NET下运行?
MSIL是将.NET代码转换为机器语言的一个中间过程,它是一种介于高级语言和基于Inter的汇编语言之间的伪汇语言。当用户编译一个.NET程序时,编译器将源代码翻译成一组可以有效地转换为本机代码且独立于CPU的指令,当执行这些指令时,实用(JIT)编译器将它们转化为CUP特定的代码由公共语言运行口语支持多种实时编译器,因此同一段MSIL代码可以被不同的编译器实时编译并运行在不同的结构上。
4、如何使用实时编译进行代码优化?
JIT的全称是实时编译,描述一种操作的词组,该操作只有咋必要时才执行,如实时编译或实时对象被激活。运行时需要代码时,将Microsoft中间语言转换为机器码的编译。