2024年4月20日发(作者:)
.net面试题及答案3篇
.net面试题及答案1
是什么,它是如何工作的?GC是什么,简述一下GC的工作方
式?
JIT:Just in time,C#或者是的代码首先被编译为IL存储在本
地,当要运行这些代码的时候,CLR对IL进行第二次编译转换成机器码运
行。好处:可移植性,而且IL在加载到内存中时将受到类型安全性方面
检查,这实现了更好的安全性和可靠性。
GC:垃圾回收(garbage collection),是根据程序的需要自动分配和回收
内存的过程。垃圾回收器处理的是引用对象,而且只回收堆上的内存。这
意味着假如维持对一个对象的引用,就会阻止GC重用对象使用的内存。
在.NET中,垃圾回收器采用的是mark-and-pact算法。在一次垃圾回收
周期开始的时候,它要识别对象的所有跟引用,根据这个引用可以遍历每
个根引用所标识的一个树形结构,并递归确定所有引用指向的对象。这样
一来,垃圾回收器就可以识别所有可达的对象,在执行回收的时候,GC
不是枚举所有访问不到的对象,相反,通过压缩所有相邻的可达的对象来
执行垃圾回收。不可访问的对象就会被覆盖。垃圾回收的宗旨是提高内存
的利用率,它并不是用来清理文件句柄,和数据库连接字符串,端口或者
其他有限的资源(终接器finalizer,不能被显示调用,不能传递任何参数,
即不能被重载,只有垃圾回收器才能调用终接器,使用Using语句进行确
定性终结
2.类(class)和结构(struct)的区别是什么?它们对性能有影响吗?
01. 值类型与引用类型
结构是值类型:值类型在栈上分配地址,所有的基类型都是结构类
型,例如:int 对应32 结构,通过使用结构可以创建更多的值
类型
类是引用类型:引用类型在堆上分配地址堆栈的执行效率要比堆的执
行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以
结构处理作为基类型对待的小对象,而类处理某个商业逻辑因为结构是值
类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的
赋值只是复制引用
注:1.虽然结构与类的'类型不一样,可是他们的基类型都是对象
(object),c#中所有类型的基类型都是object
2.虽然结构的初始化也使用了New 操作符可是结构对象依然分配在
堆栈上而不是堆上,如果不使用“新建”(new),那么在初始化所有字段之
前,字段将保持未赋值状态,且对象不可用
02.继承性
结构:不能从另外一个结构或者类继承,本身也不能被继承,虽然结
构没有明确的用sealed声明,可是结构是隐式的sealed .
类:完全可扩展的,除非显示的声明sealed 否则类可以继承其他类
和接口,自身也能被继承注:虽然结构不能被继承 可是结构能够继承接
口,方法和类继承接口一样
03.内部结构:
发布者:admin,转转请注明出处:http://www.yc00.com/news/1713591092a2279417.html
评论列表(0条)