面试问答大汇总

上传人:桔**** 文档编号:387834465 上传时间:2023-03-31 格式:DOC 页数:37 大小:110.50KB
返回 下载 相关 举报
面试问答大汇总_第1页
第1页 / 共37页
面试问答大汇总_第2页
第2页 / 共37页
面试问答大汇总_第3页
第3页 / 共37页
面试问答大汇总_第4页
第4页 / 共37页
面试问答大汇总_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《面试问答大汇总》由会员分享,可在线阅读,更多相关《面试问答大汇总(37页珍藏版)》请在金锄头文库上搜索。

1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第37页 共37页.net面试问答(大汇总) 用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答:从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层 数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问 业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关 表示层:是系统的UI部分,负责使用者与整个系统的交互。 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。 分层式结构究竟其优势何在? 1、开发人员可以只关注整个结构中的其中

2、某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化; 5、利于各层逻辑的复用。 概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。 分层式结构也不可避免具有一些缺陷: 1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。 2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。 MVC模式 MVC(Mode

3、l-View-Controller)把交互系统的组成分解成模型、视图、控制器三种部件 mvc的优点: 1.通过把项目分成model view和controller,使得复杂项目更加容易维护。 2.没有使用view state和服务器表单控件,可以更方便的控制应用程序的行为 3.应用程序通过controller来控制程序请求,可以提供丰富的url重写。 4.对单元测试的支持更加出色 5.在团队开发模式下表现更出众 MVC的不足:(1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。 (2)视图与控

4、制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。 (3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。 如何实现MVC模式,举例说明! web/business/dataaccess列举ASP.NET 页面之间传递值的几种方式。 1.使用QueryString, 如.?id=1; response. Redirect(). 2.使用Session变量 3.使用Server.Transfer 请说明

5、在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。 QueryString 传递一个或多个安全性要求不高或是结构简单的数值。但是对于传递数组或对象的话,就不能用这个方法了 session(viewstate) 简单,但易丢失 作用于用户个人,过量的存储会导致服务器内存资源的耗尽。 application 对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock cookie 简单,但可能不支持,可能被伪造 Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用 inp

6、ut ttype=hidden 简单,可能被伪造 url参数简单,显示于地址栏,长度有限 Server.Transfer 把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流 数据库稳定,安全,但性能相对弱 什么是Viewstate?它有什么作用?ViewState用来保存页面状态,就是说提交之后我们还可以看到文本框里面的内容就是ViewState保存的功劳。 ViewState只维护当前页面的状态,不同页面之间不能共享,Session可以。 ViewState你可以理解为一个隐藏控件。ASP.Net页面生命周期 每个页面的生命周期为用户的每一次访问,也就是说每一次客户端与服务器

7、之间的一个往返过程.全局变量的生命周期在此之间.1. Page_Init(); 2. Load ViewState and Postback data; 3. Page_Load(); 4. Handle control events; 5. Page_PreRender(); 6. Page_Render(); 7. Unload event; 8. Dispose method called; ADO.net中常用的对象有哪些?分别描述一下。 答: Connection 打开数据库连接 Command 执行数据库命令 DataAdapter 连接数据,执行数据库命令,填充DataSet D

8、ataSet 数据在内存中的缓存,数据结构 DataReader 只读向前的读取数据库 DataReader和DataSet的异同 DataReader使用时始终占用SqlConnection,在线操作数据库.任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的.因为DataReader的特殊性和高性能.所以DataReader是只进的.你读了第一条后就不能再去读取第一条了. DataSet则是将数据一次性加载在内存中.抛弃数据库连接.读取完毕即放弃数据库连接.因为DataSet将数据全部加载在内存

9、中.所以比较消耗内存.但是确比DataReader要灵活.可以动态的添加行,列,数据.对数据库进行回传更新操作. 存储过程和sql语句的优缺点 优点: 1.提高性能,减少网络传输,节约时间 。 2.减少网络流量 存储过程位于服务器上,调用的时候只须传递存储过程的名称以及参数,不用每次访问都传递很长的sql 语句。 4.安全性 减少sql 注入式攻击。 5.可维护性高 更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。 缺点: 1.交互性差 。 2.可移植性差 说出你所了解的数据库访问组件(例如ADO,至少4种) 答:ADO,ADO.Net,MDAC(Microsoft Dat

10、a Access Components),Microsoft SQL Server OLE DB Provider, Microsoft Jet OLE DB Provider,Desktop Database Drivers ODBC Driver,Visual FoxPro ODBC Driver 什么是面向对象 万物都是对象,其主要特征:封装、继承、多态 怎样实现多态 1.通过对象直接调用成员函数时,始终默认使用该对象的类的成员函数(除非用:显示指定类名)。2.通过指向对象的指针或引用调用成员函数时:如果该函数是实函数,则调用该指针或引用的类的成员函数;如果该函 数是虚函数,则调用该指针

11、或引用指向的对象的类的成员函数。 面向对象的思想主要包括什么? 答:任何事物都可以理解为对象,其主要特征: 继承。封装。多态。特点:代码好维护,安全,隐藏信息 什么是装箱和拆箱? 答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。装箱(boxing)是将值类型的数据转化成引用类型,int i=3; object o = i ;便是装箱过程,而拆箱(unboxing)是将饮用类型数据转换值类型,比如int j = (int)o;属于拆箱 什么是Interface?它与Abstract Class有什么区别? 接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除

12、定义行为规范外,可以有部分实现,但一 个类能实现多个接口,但只能继承一个父类 什么时候使用抽象类,什么时候用接口 接口用于规范,抽象类用于共性。接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实 现,也可以定义非静态的类变量。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。抽象类可以 提供某些方法的部分实现,接口不可以.抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。 再抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要 重新编写(这就是为什么说接口是一个类的规范了)。接口成员被定义为公共的,但抽象类的成员也可

13、以是私有 的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。 此外接口不能包含字段、构造函数、析构函数、静态成员或常量。 什么是抽象类(abstract class)? 一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽 象类的抽象方法后才能被实例化。 何时必须声明一个类为抽象类? 当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。 接口(interface)是什么? 只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。 为什么不能指定接口中

14、方法的修饰符? 接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。 可以继承多个接口么? 当然。 那么如果这些接口中有重复的方法名称呢? 这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。 接口和抽象类的区别是什么? 接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指 定方法的访问修饰符。详述.NET里class和struct的异同! 类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使

15、用new初始化。结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。如何选择结构还是类 1 堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些 2 结构表示如点、矩形和颜色这样的轻量对象 例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。 在此情况下,结构的成本较低。 3 在表现抽象和多级别的对象层次时,类是最好的选择 4 大多数情况下该类型只是一些数据时,结构时最佳的选择 C#中的接口和类有什么异同。 异: 不能直接实例化接口。 接口不包含方法的实现。 接口、类和结构可从多个接口继承。但是C# 只支持单继承:类只能从一个基类继承实现。 类定义可在不同的源文件之间进行拆分。 同: 接口、类和

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

当前位置:首页 > 医学/心理学 > 基础医学

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