XXXX NET面试题整理之基础篇7564.docx
《XXXX NET面试题整理之基础篇7564.docx》由会员分享,可在线阅读,更多相关《XXXX NET面试题整理之基础篇7564.docx(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2010 .NET面试题整理之基础篇1、什么是是面向对对象面向对象OOO = 面向向对象的的分析OOOA + 面面向对象象的设计计OODD + 面向对对象的编编程OOOP;通俗的解释释就是万万物皆对对象,把把所有的的事物都都看作一一个个可可以独立立的对象象(单元),它们们可以自自己完成成自己的的功能,而而不是像像C那样分分成一个个个函数数;现在纯正的的OO语言言主要是是javva和C#,C+也支持持OO,C是面向向过程的的。2、简述 priivatte、 prroteecteed、 puubliic、 innterrnall 修饰饰符的访访问权限限。privaate : 私私有成员员, 在类类
2、的内部部才可以以访问。proteecteed : 保护护成员,该该类内部部和继承承类中可可以访问问。publiic : 公共共成员,完完全公开开,没有有访问限限制。interrnall: 当当前程序序集内可可以访问问。3、ADOO.NEET中的的五个主主要对象象Conneectiion:主要是是开启程程序和数数据库之之间的连连结。没没有利用用连结对对象将数数据库打打开,是是无法从从数据库库中取得得数据的的。这个个物件在在ADOO.NEET 的的最底层层,我们们可以自自己产生生这个对对象,或或是由其其它的对对象自动动产生。Commaand:主要可可以用来来对数据据库发出出一些指指令,例例如可以以
3、对数据据库下达达查询、新新增、修修改、删删除数据据等指令令,以及及呼叫存存在数据据库中的的预存程程序等。这这个对象象是架构构在Coonneectiion 对象上上,也就就是Coommaand 对象是是透过连连结到数数据源。DataAAdappterr:主要要是在数数据源以以及DaataSSet 之间执执行数据据传输的的工作,它它可以透透过Coommaand 对象下下达命令令后,并并将取得得的数据据放入DDataaSett 对象象中。这这个对象象是架构构在Coommaand对对象上,并并提供了了许多配配合DaataSSet 使用的的功能。DataSSet:这个对对象可以以视为一一个暂存存区(CC
4、achhe),可可以把从从数据库库中所查查询到的的数据保保留起来来,甚至至可以将将整个数数据库显显示出来来。DaataSSet 的能力力不只是是可以储储存多个个Tabble 而已,还还可以透透过DaataAAdappterr对象取取得一些些例如主主键等的的数据表表结构,并并可以记记录数据据表间的的关联。DataSet 对象可以说是ADO.NET 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做 DataSet 对象以及数据源间传输数据的桥梁。DataRReadder:当我们们只需要要循序的的读取数数据而不不
5、需要其其它操作作时,可可以使用用DattaReeadeer 对对象。DDataaReaaderr对象只只是一次次一笔向向下循序序的读取取数据源源中的数数据,而而且这些些数据是是只读的的,并不不允许作作其它的的操作。因因为DaataRReadder 在读取取数据的的时候限限制了每每次只读读取一笔笔,而且且只能只只读,所所以使用用起来不不但节省省资源而而且效率率很好。使使用DaataRReadder 对象除除了效率率较好之之外,因因为不用用把数据据全部传传回,故故可以降降低网络络的负载载。ADO.NNET 使用Coonneectiion 对象来来连接数数据库,使使用Coommaand 或Datta
6、Addaptter对对象来执执行SQQL语句句,并将将执行的的结果返返回给DDataaReaaderr 或 DaataAAdappterr ,然然后再使使用取得得的DaataRReadder 或DattaAddaptter 对象操操作数据据结果。4、列举AASP.NETT 页面面之间传传递值的的几种方方式。1.使用QQuerrySttrinng, 如.?iid=11; rrespponsse. Reddireect(). 2.使用SSesssionn变量3.使用SServver.Traansffer4.Coookiee传值5.Apppliccatiion传传值5、C#中中的委托托是什么么?事件
7、件是不是是一种委委托?委托可以把把一个方方法作为为参数代代入另一一个方法法。委托可以理理解为指指向一个个函数的的引用。是,是一种种特殊的的委托。6、oveerriide与与重载的的区别重载是方法法的名称称相同。参参数或参参数类型型不同,进进行多次次重载以以适应不不同的需需要Overrridee 是进进行基类类中函数数的重写写。为了了适应需需要。7、描述一一下C#中索引引器的实实现过程程,是否否只能根根据数字字进行索索引?不是。可以以用任意意类型。8、三层架架构通常意义上上的三层层架构就就是将整整个业务务应用划划分为:表现层层(UII)、业业务逻辑辑层(BBLL)、数数据访问问层(DDAL)。区
8、分层次的的目的即即为了“高高内聚,低低耦合”的的思想。表现层(UUI):通俗讲讲就是展展现给用用户的界界面,即即用户在在使用一一个系统统的时候候的所见见所得。业务逻辑层层(BLLL):针对具具体问题题的操作作,也可可以说是是对数据据层的操操作,对对数据业业务逻辑辑处理。数据访问层层(DAAL):该层所所做事务务直接操操作数据据库,针针对数据据的增添添、删除除、修改改、更新新、查找找等每层层之间是是一种垂垂直的关关系。三层结构是是N层结构构的一种种,一般般来说,层层次之间间是向下下依赖的的,下层层代码未未确定其其接口(契契约)前前,上层层代码是是无法开开发的,下下层代码码接口(契契约)的的变化将
9、将使上层层的代码码一起变变化。优点:分工工明确,条条理清晰晰,易于于调试,而而且具有有可扩展展性。缺点:增加加成本。9、MVCC模式MVC(MModeel VVieww Coontrrolller)模型视图控制器器MVC 是是典型的的平行关关系,没没有说谁谁在上谁谁在下的的关系,模模型负责责业务领领域的事事情,视视图负责责显示的的事情,控控制器把把数据读读取出来来填充模模型后把把模型交交给视图图去处理理。而各各种验证证什么的的应该是是在模型型里处理理了。它它强制性性的使应应用程序序的输入入、处理理和输出出分开。MVC最大的好处是将逻辑和页面分离。10、什么么是装箱箱和拆箱箱?装箱:从值值类型接
10、接口转换换到引用用类型。拆箱:从引引用类型型转换到到值类型型。11、什么么叫应用用程序域域一种边界,它它由公共共语言运运行库围围绕同一一应用程程序范围围内创建建的对象象建立(即即,从应应用程序序入口点点开始,沿沿着对象象激活的的序列的的任何位位置)。应用程序域域有助于于将在一一个应用用程序中中创建的的对象与与在其他他应用程程序中创创建的对对象隔离离,以使使运行时时行为可可以预知知。在一个单独独的进程程中可以以存在多多个应用用程序域域。应用用程序域域可以理理解为一一种轻量量级进程程。起到到安全的的作用。占占用资源源小。12、CTTS、CLSS、CLRR分别作作何解释释CTS:CCommmon T
11、yppe SSysttem 通用系系统类型型。CLS:CCommmon Lannguaage Speecifficaatioon 通通用语言言规范。CLR:CCommmon Lannguaage Runntimme 公公共语言言运行库库。13、在ddotnnet中中类(cclasss)与与结构(strructt)的异异同?相同点:语语法类似似不同点:1.claass是是引用类类型,继继承自SSysttem.Objjectt类;sttrucct是值值类型,继继承自SSysttem.VallueTTypee类,因因此不具具多态性性。但是是注意,System.ValueType是个引用类型。2.从职
12、能能观点来来看,cclasss表现现为行为为;而sstruuct常常用于存存储数据据。3.claass支支持继承承,可以以继承自自类和接接口;而而strructt没有继继承性,struct不能从class继承,也不能作为class的基类,但struct支持接口继承。4.claass可可以声明明无参构构造函数数,可以以声明析析构函数数;而sstruuct只只能声明明带参数数构造函函数,且且不能声声明析构构函数。因因此,sstruuct没没有自定定义的默默认无参参构造函函数,默默认无参参构造器器只是简简单地把把所有值值初始化化为它们们的0等价值值。5.实例化化时,cclasss要使使用neew关键
13、键字;而而strructt可以不不使用nnew关关键字,如如果不以以neww来实例例化sttrucct,则则其所有有的字段段将处于于未分配配状态,直直到所有有字段完完成初始始化,否否则引用用未赋值值的字段段会导致致编译错错误。6.claass可可以是抽抽象类(abstract),可以声明抽象函数;而struct为抽象,也不能声明抽象函数。7.claass 可以声声明prroteecteed成员员、viirtuual成成员、ssealled成成员和ooverrridde成员员;而sstruuct不不可以,但但是值得得注意的的是,sstruuct 可以重重载Syysteem.OObjeect的的3
14、个虚方方法,EEquaals()、ToSStriing()和GettHasshTaablee()。8.claass的的对象复复制分为为浅拷贝贝和深拷拷贝,必必须经过过特别的的方法来来完成复复制;而而strructt创建的的对象复复制简单单,可以以直接以以等号连连接即可可。9.claass实实例由垃垃圾回收收机制来来保证内内存的回回收处理理;而sstruuct变变量使用用完后立立即自动动解除内内存分配配。10.作为为参数传传递时,class变量是以按址方式传递;而struct变量是以按值方式传递的。该答案转自自:Annytaao的你必须须知道的的.NEET 第四回回:后来来居上:claass和和
15、strructt 关关于类分分配在堆堆上,结结构分配配在栈上上存在争争议,这这种说法法应该指指通常情情况下另另见 xxiaootiee的 Sttrucct与Claass辨辨析,谢谢谢指正正14、堆和和栈的区区别?栈是编译期期间就分分配好的的内存空空间,因因此你的的代码中中必须就就栈的大大小有明明确的定定义;堆是程序运运行期间间动态分分配的内内存空间间,你可可以根据据程序的的运行情情况确定定要分配配的堆内内存的大大小。15、能用用forreacch遍历历访问的的对象的的要求需要实现IIEnuumerrablle接口口或声明明GettEnuumerratoor方法法的类型型。16、GCC是什么么?
16、 为什什么要有有GC? GC是垃圾圾收集器器。程序序员不用用担心内内存管理理,因为为垃圾收收集器会会自动进进行管理理。要请求垃圾圾收集,可可以调用用下面的的方法之之一: Sysstemm.gcc() Ruuntiime.gettRunntimme().gcc() 17、Sttrinng ss = neww Sttrinng(xyzz);创建了了几个SStriing Objjectt? 对于.NEET来说说该题是是错误的的,根本本就没这这样的构构造函数数。谢谢谢 377楼,赵赵伟 43楼楼,DiiggiingDDeepply 指正Strinng aa=xxyz;首先先会到常常量池中中去查找找,如
17、果果存在就就不再分分配,如如果不存存在就分分配,常常量池中中的数据据是在编编译期赋赋值的,也也就是生生成cllasss文件时时就把它它放到常常量池里里了。18、值类类型和引引用类型型的区别别?1.赋值方方式不同同:基于于值类型型的变量量直接包包含值。将将一个值值类型变变量赋给给另一个个值类型型变量时时,将复复制包含含的值。引引用类型型变量的的赋值只只复制对对对象的的引用,而而不复制制对象本本身。2.值类型型不可能能派生出出新的类类型:所所有的值值类型均均隐式派派生自 Sysstemm.VaalueeTyppe。但但与引用用类型相相同的是是,结构构也可以以实现接接口。3.值类型型不可能能包含 n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XXXX NET面试题整理之基础篇7564 NET 试题 整理 基础 7564
限制150内