.Net面试简答题——每日掌握(四)

一、CTS、CLS、CLR分别作何解释?

  • CTS:CommonTypeSystem通用类型系统。Int32、Int16→int、String→string、Boolean→bool。每种语言都定义了自己的类型,.Net通过CTS提供了公共的类型,然后翻译生成对应的.Net类型。

  • CLS:CommonLanguageSpecification通用语言规范。不同语言语法的不同。每种语言都有自己的语法,.Net通过CLS提供了公共的语法,然后不同语言翻译生成对应的.Net语法。

  • CLR:CommonLanguageRuntime公共语言运行时,就是GC、JIT等这些。有不同的CLR,比如服务器CLR、LinuxCLR(Mono)、SilverlightCLR(CoreCLR)。相当于一个发动机,负责执行IL。

二、在.NET中类(class)与结构(struct)的异同?

  • Class可以被实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的。

  • Struct属于值类型,是分配在内存的栈上的。结构体是复制传递的。

三、堆和栈的区别?

  • 栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在栈内存中。

  • 堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页