程序员面试题

上传人:xzh****18 文档编号:34572873 上传时间:2018-02-25 格式:DOC 页数:17 大小:99.50KB
返回 下载 相关 举报
程序员面试题_第1页
第1页 / 共17页
程序员面试题_第2页
第2页 / 共17页
程序员面试题_第3页
第3页 / 共17页
程序员面试题_第4页
第4页 / 共17页
程序员面试题_第5页
第5页 / 共17页
点击查看更多>>
资源描述

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

1、1.重载(Overload )和覆写(override)的区别 答:方法重载:当类包含两个名称相同但签名不同(方法名相同,参数列表不相同) 的方法时发生方法重载。用方法重载来提供在语义上完成相同而功能不同的方法。覆写:在类的继承中使用,通过覆写子类方法可以改变父类虚方法的实现。 2.接口与继承的区别?什么时候使用接口,什么时候使用继承? 答: (1) 接口定义一个类型需要实现的方法,属性,索引和事件,包括可能的参数类型和返回值类型,而把具体的实现交由相应的类或结构来做,从而为组件提供多态能力。 (2) 继承常用于在一个现有父类的基础上的功能扩展,往往是我们将几个类中相同的成员提取出来放在父类中

2、实现,然后在各自的子类中加以继承。 (3) 接口可以实现多接口继重,而继承只能实现单继承。 (4) 实现继承可继承父类型的实现,由于接口中没有定义方法的实现,因此必须实现继承后该接口的所有方法。 (5) 为父类型添加方法可能不影响使用继承自该类型实现的用户,而为接口添加方法导致用户必须为新方法添加实现。 (6) 当派生类和基类是 is-a 的关系是使用继承 ,典型案例苹果 is-a 水果 ,存在 can-do 的关系时使用 接口 3.ado, 的区别 答: 您可以通过将 ADO.NET 的各项功能与 ActiveX 数据对象 (ADO) 的特定功能进行比较来理解 ADO.NET 的功能。 数据

3、的内存中表示形式在 ADO 中,数据的内存中表示形式为记录集。在 ADO.NET 中,它为数据集。它们之间有重要的差异。 表的个数 记录集看起来像单个表。如果记录集将包含来自多个数据库表的数据,则它必须使用 JOIN 查询,将来自各个数据库表的数据组合到单个结果表中。 相反,数据集是一个或多个表的集合。数据集内的表称为数据表;明确地说,它们是 DataTable 对象。如果数据集包含来自多个数据库表的数据,它通常将包含多个 DataTable 对象。即,每个 DataTable 对象通常对应于单个数据库表或视图。这样,数据集可以模仿基础数据库的结构。 数据集通常还包含关系。数据集内的关系类似于

4、数据库中的外键关系,即它使多个表中的行彼此关联。例如,如果数据集包含一个有关投资者的表和另一个有关每个投资者的股票购买情况的表,则数据集可能还包含一个关系来连接投资者表的各个行和购买表的对应行。由于数据集可以保存多个独立的表并维护有关表之间关系的信息,因此它可以保存比记录集丰富得多的数据结构,包括自关联的表和具有多对多关系的表。 数据导航和游标 在 ADO 中,您使用 ADO MoveNext 方法顺序扫描记录集的行。在 ADO.NET 中,行表示为集合,因此您可以像依次通过任何集合那样依次通过表,或通过序号索引或主键索引访问特定行。DataRelation 对象维护有关主记录和详细资料记录的

5、信息,并提供方法使您可以获取与正在操作的记录相关的记录。例如,从 Investor 表的Nate Sun的行开始,可以定位到 Purchase 表中描述其购买情况的那组行。 游标 是数据库元素,它控制记录导航、更新数据的能力和其他用户对数据库所做更改的可见性。ADO.NET 不具有固有的游标对象,而是包含提供传统游标功能的数据类。例如,在 ADO.NET DataReader 对象中提供只进、只读游标的功能。有关游标功能的更多信息,请参见数据访问技术。 将打开连接的时间降至最低 在 ADO.NET 中,打开连接的时间仅足够执行数据库操作,例如 选择(Select) 或 更新(Update)。您

6、可以将行读入数据集中,然后在不保持与数据源的连接的情况下使用它们。在 ADO 中,记录集可以提供不连接的访问,但 ADO 主要是为连接的访问设计的。 ADO 和 ADO.NET 中的不连接处理之间存在一个显著差异。在 ADO 中,通过调用 OLE DB 提供程序来与数据库通信。但在 ADO.NET 中,您通过数据适配器(OleDbDataAdapter、SqlDataAdapter、OdbcDataAdapter 或 OracleDataAdapter 对象)与数据库通信,这将调用 OLE DB 提供程序或基础数据源提供的 API。ADO 和 ADO.NET 之间的主要区别在于:在 ADO.N

7、ET 中,数据适配器允许您控制将对数据集所做的更改传输到数据库的方式,方法是实现性能优化、执行数据验证检查或添加其他任何额外处理。 注意 数据适配器、数据连接、数据命令和数据读取器是组成 .NET Framework 数据提供程序的组件。Microsoft 和第三方供应商可能会提供其它提供程序,这些提供程序也可集成到 Visual Studio 中。有关不同 .NET 数据提供程序的信息,请参见 .NET 数据提供程序。 在应用程序间共享数据 在应用程序间传输 ADO.NET 数据集比传输 ADO 不连接的记录集要容易得多。若要将 ADO 不连接的记录集从一个组件传输到另一个组件,请使用 CO

8、M 封送。若要在 ADO.NET 中传输数据,请使用数据集,它可以传输 XML 流。 相对于 COM 封送,XML 文件的传输提供以下便利之处: 更丰富的数据类型 COM 封送提供一组有限的数据类型(由 COM 标准定义的那些类型) 。由于 ADO.NET 中的数据集传输基于 XML 格式,所以对数据类型没有限制。因此,共享数据集的组件可以使用这些组件一般会使用的任何丰富的数据类型集。 性能 传输大型 ADO 记录集或大型 ADO.NET 数据集会使用网络资源;随着数据量的增长,施加于网络的压力也在增加。ADO 和 ADO.NET 都使您可以最大限度地降低所传输的数据。但 ADO.NET 还提

9、供另一个性能优势:ADO.NET 不需要数据类型转换。而需要 COM 封送来在组件间传输记录集的 ADO,则需要将 ADO 数据类型转换为 COM 数据类型。 穿透防火墙 防火墙可以影响试图传输不连接的 ADO 记录集的两个组件。请记住,防火墙通常配置为允许 HTML 文本通过,但防止系统级请求(如 COM 封送)通过。 因为组件使用 XML 交换 ADO.NET 数据库,所以防火墙可以允许数据集通过。 页面在什么时候产生?又在什么时候销毁? 答: (1)Page_Init();-初始化对象这一过程主要是初始化包括页面本身的所有控件,每次的页面载入就会执行一次初试过程,而在这里面访问到的也是

10、控件的初始值。还有就是可以通过 OnInit()来重载初试化事件。 (2) LoadViewState-导入 Viewstate 数据在初试化事件后,在 loadvireState 事件中所有控件将获得他们的第一个属性 ViewState 属性,这个属性最终将被返回给服务器以判断这个页面是已经被用户访问完毕还是仍然在被用户所访问。也可重载 loadvireState 事件对相应的控件进行值设定。 (3) Load Postback data;-用 LoadPostData 处理 Postback 数据Postback 数据也可以理解成就是服务器页面提交的表单数据,每一次表单数据的提交都会触发执

11、行 IPostBackDataHandler 接口操作的控件。 (4) Page_Load();-导入对象这个过程就比较熟悉了,也是在页面的每次载入时一定会执行,但是注意和 PageInit()之间的区别,所有的对象第一次被布置在 DOM 页面(在 A 中称控件树)里了并且可以通过代码或是相关的位置被引用。这样,对象就可以很容易的从客户端获得诸如宽度、高度、值、可见性等在 Html 中的属性值。经常会用到的 Page.IsPostBack()指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问. (5) Handle control events;-具体的控件事件这个过程执行的是

12、相应具体控件事件,比如按钮事件.等。 (6) Page_PreRender();-预先呈递对象预先呈递对象可以改变对象并将改变保存的最后时刻.可以对控件的属性、控件树的结构等做出最后的修改,同时还不用考虑 A 对其作出任何改变,因为此时已经脱离了数据库调用以及 viewstate 更新了,也可以通过 OnPreRender 来重载。 (7) Page_Render();-呈递对象呈递页面所有对页面控件的修改完成后 viewstate 就被保存了。运用 Html 创建给浏览器输出的页面的时候 Render 事件就发生了。在 Render 事件过程中,页面调用其中的对象将它们呈递给Html。然后,

13、页面就可以以 Html 的形式被用户的浏览器访问了。当 Render 事件被重载时,开发者可以编写自定义的 Html 代码使得原先生成的 Html 都无效而按照新的 Html 来组织页面。Render 方法将一个 HtmlTextWriter 对象作为参数并用它将 Html 在浏览器上以网页的形式显示。这时仍然可以做一些修改动作,不过它们只是客户端的一些变化而已了。亦可以重载 Render 事件。 (8) Unload event;-卸载对象当想服务器请求一个对象的时候,就会在内存里生成一个继承页面对象,也就是页面的类,它继承自 System.Web.UI.Page.当页面对象从内存中卸载时发

14、生,将触发该事件. (9) Dispose method called在呈递给 Html 完成后,所有的对象都应被销毁。在 Dispose 事件中,你应该销毁所有在建立这个页面时创建的对象。这时,所有的处理已经完毕,所以销毁任何剩下的对象都是不会产生错误的,包括页面对象。你可以重载 Dispose 事件。 5.Session,ViewState,Application,cookie 的区别? 答: Session:Session 用于保持状态的基于 Web 服务器的方法。Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象。主要用于保持代码隐藏类中对象的

15、状态。为每个用创建的,用于存储单个用户,因为他是相对每个用户的.所以可能来取得在线人数等。 ViewState:主要用于保持 Web 页上控件的状态。当 Web 页上的控件被绑定到代码隐藏类中的对象。 Application 用于存储所有用户都可视的信息.所以它存储的是要让所有用户共享的一些信息.如总访问数等; Cache:页面缓存。 cookie:通常我们都把它放在客户端,也可以存储在服务器端。主要用它存储用户的个性设制,和登陆信息。 6.面向对象的思想主要包括什么? 答: 开发人员应该熟悉面向对象软件开发(OOP)基本概念,熟悉面向对象软件开发中的类、继承、封装、多态等概念,具备良好的面向

16、对象软件开发思想和设计原则。 7.什么是 ASP.net 中的用户控件? 答: 用户控件。用户控件是能够在其中放置标记和 Web 服务器控件的容器。然后,可以将用户控件作为一个单元对待,为其定义属性和方法。 8.什么叫应用程序域?什么是受管制的代码?什么是强类型和强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS 和 CLR 分别作何解释? 答: (1)应用程序域为隔离正在运行的应用程序提供了一种灵活而安全的方法。 (2)受管制的代码:在.NET 环境中运行的任何代码都称为受管制的代码(unmanaged code),.NET 外部的其他代码也运行在 Windows 上,这些代码称为未受管制的代码(unmanaged code) 。 (3)强类型和弱类型的区别在与,在编码过程中是否要指定数据类型,作为强类型必须指定数据类型,编译器为其分配相应的存储空间(如 c ,pascal )否

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

当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

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