1 / 7
文档名称:

.net面试题及答案.doc

格式:doc   大小:16KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

.net面试题及答案.doc

上传人:碎碎念的折木 2022/10/12 文件大小:16 KB

下载得到文件列表

.net面试题及答案.doc

文档介绍

文档介绍:该【.net面试题及答案 】是由【碎碎念的折木】上传分享,文档一共【7】页,该文档可以免费在线阅读,需要了解更多关于【.net面试题及答案 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。.net面试题及答案
.net面试题及答案(一)
,它是如何工作的?GC是什么,简述一下GC的工作方式?
JIT:Justintime,C#,当要运行这些代码的时候,CLR对IL进展其次次编译转换成机器码运行。好处:可移植性,而且IL在加载到内存中时将受到类型安全性方面检查,这实现了更好的安全性和牢靠性。
GC:垃圾回收(garbagecollection),是依据程序的需要自动安排和回收内存的过程。垃圾回收器处理的是引用对象,而且只回收堆上的内存。这意味着假设维持对一个对象的引用,就会阻挡GC重用对象使用的内存。,垃圾回收器采纳的是mark-and-compact算法。在一次垃圾回收周期开头的时候,它要识别对象的全部跟引用,依据这个引用可以遍历每个根引用所标识的一个树形构造,并递归确定全部引用指向的对象。这样一来,垃圾回收器就可以识别全部可达的对象,在执行回收的时候,GC不是枚举全部访问不到的对象,相反,通过压缩全部相邻的可达的对象来执行垃圾回收。不行访问的对象就会被掩盖。垃圾回收的宗旨是提高内存的利用率,它并不是用来清理文件句柄,和数据库连接字符串,端口或者其他有限的资源(终接器finalizer,不能被显示调用,不能传递任何参数,即不能被重载,只有垃圾回收器才能调用终接器,使用Using语句进展确定性终结
(class)和构造(struct)的区分是什么?它们对性能有影响吗?

构造是值类型:值类型在栈上安排地址,全部的基类型都是构造类型,例如:,通过使用构造可以创立更多的值类型
类是引用类型:引用类型在堆上安排地址堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的规律简单的对象。所以构造处理作为基类型对待的小对象,而类处理某个商业规律由于构造是值类型所以构造之间的赋值可以创立新的构造,而类是引用类型,类之间的赋值只是复制引用
注:”类型不一样,可是他们的基类型都是对象(object),c#中全部类型的基类型都是object
,假如不使用“新建”(new),那么在初始化全部字段之前,字段将保持未赋值状态,且对象不行用

构造:不能从另外一个构造或者类继承,本身也不能被继承,虽然构造没有明确的用sealed声明,可是构造是隐式的sealed.
类:完全可扩展的,除非显示的声明sealed否则类可以继承其他类和接口,自身也能被继承注:虽然构造不能被继承可是构造能够继承接口,方法和类继承接口一样
:
构造:没有默认的构造函数,但是可以添加构造函数没有析构函数没有abstract和sealed(由于不能继承)不能有protected修饰符可以不使用new初始化在构造中初始化实例字段是错误的
类:有默认的构造函数有析构函数可以使用abstract和sealed有protected修饰符
必需使用new初始化
.net面试题及答案(二)
,.NET有哪些元编程的手段和场景?什么是反射?能否举一些反射的常用场景?有人说反射性能较差,您怎么对待这个问题?有什么方法可以提高反射的性能吗?
学着做OA的时候,动态加载不同的DataProvider(Oracle和Sqlserver),便利,可以随时替换不用重新编译程序
?匿名方法是什么?在C#,Lambda表达式是什么?扩展方法是什么?LINQ是什么?您觉得C#,它们带来了什么优势?BCL中哪些类库和这些特性有关?您平常最常用哪些?
托付可以把一个方法作为参数代入另一个方法。
托付可以理解为指向一个函数的指针。
匿名方法:就是没有实际方法声明的托付实例。或者说,它们的定义是直接内嵌在代码中的。
Lambda表达式:是比匿名方法更加简洁的一种匿名函数语法
托付和大事没有可比性,由于托付是类型,大事是对象,下面说的是托付的对象(用托付方式实现的大事)和(标准的event方式实现)大事的区分。大事的内部是用托付实现的。由于对于大事来讲,外部只能“注册自己+=、注销自己-=”,外界不行以注销其他的注册者,外界不行以主动触发大事,因此假如用Delegate就没法进展上面的掌握,因此诞生了大事这种语法。大事是用来阉割托付实例的,类比用一个自定义类阉割List。大事只能add、remove自己,不能赋值。大事只能+=、-=,不能=。大事内部就是一个private的托付和add、remove两个方法。
、网站、社区、工程等等?
,?
C#本质论,SQLServer2023实战,数据构造,,Javascript深入浅出

1)website修改后不需要重启即可看到效果,webapplication需要
2)website不分namespace,webapplication有namespace
3)website为了兼容asp转过来的开发人员****惯
4)没有技术上的区分,调试****惯不同
5)website为每个编译为一个dll,webapplication生成一个dll
6)不利于工程开发,比方代码出错不简单发觉
.net面试题及答案(三)
?.NETBCL中有哪些常见的特别?在代码中您是如何捕获/处理特别的?在“catch(ex)”中,“throw”和“throwex”有什么区分?您会如何设计特别的构造,什么状况下您会抛出特别?
(1)C#语言的特别处理功能可帮忙您处理程序运行时消失的任何意外或特别状况
(2)throw会保存堆栈信息。throwex不会。固然,假如你抛出新的特别之前设置innerException的话,可以通过innerException的堆栈访问原有的堆栈。
(3)靠特别才能发觉错误的,通过trycatchfinally来捕获特别。假如是未预料到的则不处理(内存缺乏,删除文件)直接报错更简单发觉错误catch块从最详细到常规排列
[]的区分是什么,平常你如何进展选择?DictionaryTKey,TValue是做什么的?.NETBCL中还有哪些常用的容器?它们分别是如何实现的(哪种数据构造)?分别是适用于哪些场景?
,大小是可变的,T[]继承自Array,大小是固定的。假如大小没有怎么变化,选择T[],一般状况下选择ListT
,:sortlist,stack等
?使用时有什么需要留意的吗?
如何选择是定义一个“完全抽象”的抽象类,还是接口?什么是接口的“显式实现”?为什么说它很重要?
一样点:都不能被直接实例化,都通过继承实现其抽象方法
不同点:
(1)接口支持多继承;抽象类不能实现多继承。
(2)接口只能定义行为;抽象类既可以定义行为,还可能供应实现。
(3)抽象类允许包含实现的virtual成员,所以能为派生类成员供应一个默认的实现,而接口全部的成员自动成为virtual成员,而且不能包含任何实现
?引用类型
它和一般的引用类型相比有什么特殊的地方吗?不行变的
使用字符串时有什么需要留意的地方?为什么说StringBuilder比拟高效?
当拼接两个字符串时,系统先是把两个字符串写入内存,接着删除原来的String对象,然后创立一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。,它供应的Append方法,能够在已有对象的原地进展字符串的修改,简洁而且直接。
在连接多个字符串时,它无论何时都比直接相加更高效吗?
不肯定,在1000个字符以内效果一样,到达10000时StringBuilder类的效率会显著提升
如何高效地进展数组复制?“二维数组”和“数组的数组”有什么区分?
数组复制的方法:forCopyTo()静态CopyTo()Clone