.NET面试题 - 1
1. 面向对象的思想主要包括什么?
答: 继承,多态,封装,类,对象,接口,聚集,聚合,泛化
2. 什么是ASP.net中的用户控件
答: 用户控件就是使用.ascx作为扩展名的文件,其将多种服务器端控件组合在一起,作为一个单独的控件服务于页面。这种用户控件存在的问题如,将其拖到不同级别的目录下后里面的图片等的相对路径会变得不准确。需要自已写方法调整。
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
答: 应用程序域就是.NET应用程序所运行的环境,一个应用程序域可能运行一个或多个应用程序装,这解除了传统Windows中一个应用依赖一个进程的缺点,大大提高了系统资源的利用率。两个应用程序域之间实现了隔离更好,保证了安全性。
托管代码即为运行于应用程序域(也可以说是CLR)中的代码。
强类型系统下,在声明一个对象时,必须指定一个类型,类型之间可以进行转换。当不确定一个类的类型是,可以将其指定为object型,即所有类型的父类型。
装箱就是把值类型转成引用类型,把一个值由堆栈转到托管堆中,反之为拆箱。
重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚.
CTS是通用类型系统,表示要在CLR上运行的语言所要符合的类型。CLS通用语言规范,表示要在CLR上运行的语言所要遵守的规范。CLR通用语言运行时,使用.net平台的语言编写的程序的运行环境。
4. 列举一下你所了解的XML技术及其应用
答: Web Service,Xml+Xslt做网站,配置文件也多以xml格式出现。
5. 值类型和引用类型的区别?写出C#的样例代码。
答: 值类型存储于堆栈上,而引用类型存储于托管堆之上,需要注意的是引用类型的复制,通过"="赋值的方式复制只是复制了一个引用,要想完整的复制出另一个新对象,需要自己编写进行深拷贝的代码。在声明值类型的变量时,将自动给变量赋默认值,而引用类型默认被初始化为空(null)。可以由引用类型派生类,但是值类型不可以。C#预定义的引用类型有object,string。值类型有int,float等。
6. ADO.net中常用的对象有哪些?分别描述一下。
答: ADO.NET中的类分连接类与非连接类,非连接类包括DataSet,DataTable,DataView,DataRow,DataColumn等。连接类包括各类Connection,Command ,DataReader,DataAdapter等。
7. 如何理解委托?
答: 委托相当于为调用的方法定义了一种声明,包括参数要求与返回值要求。委托的主要作用就是允许将方法作为参数进行传递,这可用于定义回调方法等。委托可以链接在一起;例如,可以对一个事件调用多个方法。由于有协变和逆变,方法不需要与委托签名精确匹配。
8. C#中的接口和类有什么异同。
答: 接口主要用来定义功能的契约,类主要用来定义一个实现。这个实现可以通过继承向子类传递。
9.net中读写数据库需要用到哪些类?它们的作用
答: 可以使用ADO.NET的链接类来完成这些功能。具体见第六题,其中Connection用来建立与数据库的链接,Commond用来传入数据库更新,查询等命令。DataReader用来单向读取数据,DataAdapter可以返回数据集。ExcuteScalar可以执行返回受影响的行数。DataParameter定义了参数。
10. UDP连接和TCP连接的异同。
答: TCP有个三次握手协议,而UDP没有这样的操作过程,所以TCP保证了数据传输的完整。
11. ASP.net的身份验证方式有哪些?分别是什么原理?
答: form认证,使用表单,需要用户输入用户名密码,然后传回数据库进行验证。
windows集成身份认证,这个往往.用于域环境中,通过Windows系统的令牌来实现验证。
12. 进程和线程分别怎样理解?
答: 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。
13.什么是code-Behind技术。
答: 代码分离,将Html描述的页面置于一个文件,然后将操作这些元素的C#代码写在一个后台代码文件中。类似于webform的winform也是采用了这种方式。
14. 活动目录的作用
答: 构建一个域环境。具体域环境可以用来部署SharePoint Server后者VFS等。
15..net中读写XML的类都归属于哪些命名空间?
答: System.Xml,在.net 3.5中System.Xml.Linq也用来操作xml
16.解释一下UDDI、WSDL的意义及其作用。
答: 可以将Web服务注册到UDDI,这样可以通过查找UDDI来获得Web Service的列表。WSDL是Web服务描述语言,其描述了一个Web服务的详细信息,Vs就是通过这个来生成一个Web服务的本地代理。
17.什么是SOAP,有哪些应用。
答: SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息。其主要用于Web服务的消息传输。
18. 如何部署一个ASP.NET页面。
答: 放在iis的某个网站或者虚拟目录下。
19. 如何理解.net中的垃圾回收机制。
答: 基本上.net垃圾回收工作原理是寻找不再使用的对象,将他们从内存中删除,并压缩托管堆以释放不再使用的对象所占用的内存。在堆被压缩之后,所有的对象引用都将被调整为指向对象新的存储位置。
20.常用的调用webservice方法有哪些?
答: 说一下目前比较常用的方法:使用jQuery这样的客户端框架。也可以使用ASP.NET(Ajax)中的Script Manager。