1.请简述.NET中GC的运行机制。
答:垃圾回收是指释放托管堆上不再被使用的对象内存。其过程基本包括:通过算法找到不再被使用的对象、移动对象,使所有仍被使用的对象紧靠托管堆的一边和调整各个状态变量。垃圾回收的运行成本较高,对性能的影响较大。程序员在编写.NET代码时,应该避免不必要的内存分配,尽量减少或避免使用GC.Collect来执行垃圾回收。
2.在C#中如何声明一个类不能被继承。
答:C#中可以通过关键字sealed来申明一个类型不可被继承,设计中应该为所有不被作为基类的类型添加sealed关键字,以避免各种来自继承的易产生的错误。
3.Int[]是引用类型还是值类型?
答:数组类型都是继承System.Array,而System.Array又继承自System.Obeject。所以所有的数组类型都是引用类型。
4.解释泛型的基本原理。
答:泛型类似C++中的模板,允许程序员定义更加通用的类型和算法,并且在具体使用时再生成具体的封闭类型。所有带泛型参数的类型都是一个开放式类型,它不能被实例化,单具备所有封闭类型的其他特性,本质上,它和封闭类型没有区别。
5.索引的分类以及区别。
答:索引分为聚集索引和非聚集索引,区别如下:
1)聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个
2)聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续。
6.什么叫做应用程序域?
答:应用程序域可以理解为一种轻量级进程。它起到安全的作用,占用的资源小。
7.什么是装箱和拆箱?
答:从值类型接口转换到引用类型为装