[理学]Net程序员面试题

上传人:油条 文档编号:34122259 上传时间:2018-02-21 格式:DOC 页数:35 大小:186.50KB
返回 下载 相关 举报
[理学]Net程序员面试题_第1页
第1页 / 共35页
[理学]Net程序员面试题_第2页
第2页 / 共35页
[理学]Net程序员面试题_第3页
第3页 / 共35页
[理学]Net程序员面试题_第4页
第4页 / 共35页
[理学]Net程序员面试题_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《[理学]Net程序员面试题》由会员分享,可在线阅读,更多相关《[理学]Net程序员面试题(35页珍藏版)》请在金锄头文库上搜索。

1、1、面向对象的思想主要包括什么?答:面对对象的思想主要包括封装、继承与多态三个特性。封装是指一个类只对外公开一些(属性与方法)接口,以供调用者可以使用其提供的服务,但其具体的实现却是隐藏的。对调用者而言只需要知道这些接口就可以找到自己需要的服务,而无需得知道服务提供者是如何提供服务的,它反应了事物的相对独立性与实现的隐藏性。继承是指从一个类可以派生出另外一个类,如从 A 类派生出 B 类,前者为父类,后者为子类。子类拥有父类的属性与形为,同时可以进行扩展。继承最后表现出结果是一棵树,对父类的修改直接影响其子类。多态性与继承相关,一个类的派生类可以转换为其父类,换句话说如果你有一个类家族,那对这

2、个类家族的顶级类的操作同样适用于这个类家族中的任何一个子类,因为任何一个子类都能转换为其父类,这样最后的结果是因为不同的子类有不同的实现而出现不同的操作结果,这就是多态的概念。2、什么是 ASP.net 中的用户控件?答:用户控件是扩展名为.ascx 的文件,其封装了 WEB 程序页面中的一部分 UI 与操作并自行提供呈现,其创建方法与页面的创建方法几乎是一样的,所以用户控件创建与使用是足够简单的,别一方面因为用户控件允许创建属性与事件,所以其功能也是强大的。3、什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS 和 CLR 分别作何解释?答:

3、应用程序域是一种隔离边界,.net 公共语言运行库使用它来对不同的应用程序进行隔离,从而保证一个程序在运行时的行为可知且安全(因为不同应用程序域中的程序不能直接互相通信) 。比如,一台 WEB 服务器通常驻留不只一个 WEB 应用程序,通过使不同的应用程序处于不同的应用程序域中,可以预防一个 WEB 程序出现问题而影响其它 WEB 应用程序的运行。受管制代码指的是以公共语言运行库为目标的代码,即 manage code(不知道这两个写的对不对) ,也被称为托管代码。它基于.net 的元数据格式,并运行于.net 环境下,之所以称之为安全代码,是因为公共语言运行库在运行托管代码时,运行库除了负责

4、满足程序可能具有的依赖项外,还负责管理内存分配、启动和停止线程和进程,以及强制执行安全策略。强类型系统本人不甚清楚,等弄明白了之后补上。装箱指的是将一个值类型转换为引用类型,拆箱与之相反。重载指的是一个方法在一个类中可以存在不同版本(即方法名可以相同) ,只要其方法签名不相同即可,调用时根据传递的参数类型与个数进行自动匹配。CTS 即通用类型系统,是公共语言运行库支持多语言的一个重要组成部分。通用类型系统支持绝大部分编程语言中存在类型与操作,这为公共语言运行库支持众多不同的编程语言提供了必要的条件。CLS 即公共语言规范,它是 CTS 可以说是.net 中不同语言互相集成的基础。简单的说 CL

5、S 定义了一组规范,该规范规定了不同语言间互相操作时所要遵守的规则。CLR 即公共语言运行库, .net 的核心东西,也是.net 程序员最常听到的术语,公共语言库通过元数据即中间语间为托管代码提供各种服务,如代码访问安全性、对象生存周期管理、调试与分析支持等,这也是为什么说托管代码是基本于.net 元数据的原因。4、列举一下你所了解的 XML 技术及其应用答:XML 在很多地方都有应用, Ajax、Webservice 以及近来的 RSS 中等。5、值类型和引用类型的区别?写出 C#的样例代码。答:值类型直接包含其值,引用类型则包含的不是其具体的值,而是其值在内存中位置指针,并且值类型与引用

6、类型其值存储的位置是不一样的:值类型的值存储在堆栈或内联结构上,而引用类型的值存储在堆上。值类型与引用类型是通用类型系统中的两种不同类型。6、ADO.net 中常用的对象有哪些?分别描述一下。答:ADO.NET 中常的对象主要有以下几个:1、数据库连接对象 SqlConnection 与 OleDbConnection:这两个对象用于连接并打开数据库。2、命令对象 SqlCommand 与 OleDbCommand:这两上对象表示所要对数据库执行的操作命令,即 Sql 语句或存储过程。3、数据读取对象 SqlDataReader 与 OleDbDataReader:以只读方式访问返回的数据集。

7、4、适匹器对象 SqlDataAdapter 与 OleDbDataAdapter:用于获取或更新数据。5、数据集 DataSet:用于保存获取到的关系数据集及其约束和相互间的关系。6、数据集 DataTable:DataSet 中的一个表。以上东西尽管是最常用的,但本人很少直接使用这些东西。7、如何理解委托?答:委托提供了动态调用某些特定方法的接口,只要这些方法的签名与委托匹配。委托可以形成链,这样,可以开启对多个方法的调用,在.net 中委托是事件的处理机制。 (很多书上都说相当于 C+中的函数指针,我就想,如果有人不知道什么是函数指针,那又该怎么理解委托呢?)8、C#中的接口和类有什么异

8、同。答:接口是一个标记,自身不提供实现,继承它的类必须实现其定义的属性与方法(除非这个类也是抽象的) ,且接口内不能定义实例构造函数(因为接口不能被实例化) 。一个类则可以自己拥有全部的实现,其定义的成员不一定都要是公共的,并且类可以定义自己的实例构造函数。9、NET 中读写数据库需要用到哪些类?他们的作用答:这跟第 6 题有点类似。10、UDP 连接和 TCP 连接的异同。答:这个好像问的有点奇怪,UDP(用户数据报协议)不建立连接,TCP 在信息传递前要先建立连接。相比而言,UDP 传递的数据量小而快,但不可靠、不安全。11、ASP.net 的身份验证方式有哪些?分别是什么原理?答: 中有

9、三种身份验证方式(我记得好像就是三个) ,分别是 Windows 集成身份验证、Form 表单验证与 Passport 身份验证。Windows 身份集成验证是利用 IIS 设置进行身份验证(通常用于局域网内) ,Form 表单验证是基于 Cookie,它利用 Cookie 存储用户的标识,并将未验证的用户自动重定向到指定的登录页面。Passport 身份验证就是 Microsoft 的集中身份验证服务(要向微软交钱才能使用吧!) 。12、进程和线程分别怎么理解?答:进程是操作系统进行资源分配与调度的一个基本的独立的单位,拥有独立的内存区域(资源) 。每个应用程序都会开启至少一个进程,每个进程

10、中至少包含一个线程,它是进程中的一个执行单元,自身不能独立运行,同时,线程是 CPU 进行调度和时间分配的基本单位,且多个线程可共享内存。相比而言,线程的速度要更快、所需要资料更少、CPU 调度更快,所以线程也被叫做轻型进程。13、什么是 code-Behind 技术。答:在传统 asp 中,WEB 页面的 UI 与逻辑都是写在一个页面里而无法分开。这种编写代码方式的最大弊端就是一旦 UI 有所变动,逻辑几乎是不可避免的也要进行修改,或者逻辑有所变动,UI 也几乎也是不可避免的要进行改动,同时这种混合的方式暴露了程序的实现逻辑。 解决了这些问题。 中采用了页面“继承”的方式,即前台页面.asp

11、x文件通过其页面指令Page 继承后台.cs 文件,这样,不仅将 WEB 页面的 UI 与逻辑分开,同时在程序编译后,其实现逻辑也被隐藏,以.dll 文件代替。 中的这种程序编写方式就被叫做 code-Behind 技术。 14、net 中读写 XML 的类都归属于哪些命名空间?答:都属于 System.Xml 命名空间。15、什么是 SOAP,有哪些应用。答:SOAP 即简单对象访问协议,用于在分布式环境中交换信息的简单协议,基于XML。Web Service 就是使用该协议进行信息传递的。16、如何理解.net 中的垃圾回收机制。答:.net 的垃圾回收机制又被叫做“分代的垃圾回收” 。

12、垃圾回收就是从内存中寻找不再使用的对象,将其移除并对内存区域进行重新划分。在.net 中被分配在内存中的对象分为三个级别,1、2、3(级)代。处于第 1 代的是最近被分配的内存的对象,它们通常很小且生命周期很短。经过一轮垃圾回收后,这一代的对象很多都被从内存中移除,还有被引用的对象则移到下一代。再过一轮(假设对第一代内存回收没有得到足够的内存,会对第 2 代对象进行垃圾回收),继续留在第 2 代的对象将被移动第 3 代,这个级别中的对象通常是生命周期很长的对象。很显然,对第 1 代的对象进行垃圾回收是最有收获的。如果在第 1 代上已经没有可以被分配的内存,那么就在第 1 代上引发垃圾回收,在这

13、个级别上的垃圾回收是最快的。如果在第一代上进行了垃圾回收但仍不能满足内存需要时,那么就在第二代对象上引发垃圾回收。在第 3 代对象上进行垃圾回收是最后的选择(如果在第 1 代与第 2 代码对象上进行了垃圾回收任得不到需要的内存) ,因为对 3 代对象进行回收的代价相对而言是最大的。17、常用的调用 webservice 方法有哪些?答:1、利用 VS 的“添加 Web 引用”命令来调用一个 Web Service。2、利用webservice.htc 调用 Web Service(没玩过)18、用.net 做 B/S 结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答

14、:从下至上分别为:数据访问层、业务逻辑层(又或成为领域层) 、表示层 数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问 业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关 表示层:是系统的 UI 部分,负责使用者与整个系统的交互。 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。 19、分层式结构究竟其优势何在? 1、开发人员可以只关注整个结构中的其中某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化; 5、利于各层逻辑的复用。 概括来说,分层式设计可以达至如下目的:分散关注、松散耦合

15、、逻辑复用、标准定义。20、分层式结构也不可避免具有一些缺陷: 1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。 2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。 21、MVC 模式及优缺点MVC(Model-View-Controller)把交互系统的组成分解成模型、视图、控制器三种部件 优点:1.通过把项目分成 model view 和 controller,使得复杂项目更加

16、容易维护。 2.没有使用 view state 和服务器表单控件,可以更方便的控制应用程序的行为 3.应用程序通过 controller 来控制程序请求,可以提供丰富的 url 重写。 4.对单元测试的支持更加出色 5.在团队开发模式下表现更出众 缺点: (1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循 MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。 (2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。 (3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。 22、请说明在.net 中常用的几种页面间传递参数的方法,并说出他们的优缺点。 1)QueryString 传递一个或多个安全性要求不高或是结构简单的数值。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号