2011年最新net面试题.doc
《2011年最新net面试题.doc》由会员分享,可在线阅读,更多相关《2011年最新net面试题.doc(102页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.net 理论知识什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP;通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数; 现在纯正的OO语言主要是java和C#,C+也支持OO,C是面向过程的。阐述面向接口、面向对象、面向方面编程的区别面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的属性及方法。设计中采用了封装、继承、抽象的手法面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低面向方面Aspect-Orien
2、ted Programming (AOP)就是大名鼎鼎的AOP。其实有点象struts里的拦截。 举例:假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封装在数据对象中,称为Data Class,同时,将有多个访问类,专门用于在同一时刻访问这同一个数据对象。为了完成上述并发访问同一资源的功能,需要引入锁Lock的概念,也就是说,某个时刻,当有一个访问类访问这个数据对象时,这个数据对象必须上锁Locked,用完后就立即解锁unLocked,再供其它访问类访问。 面向对象的思想主要包括什么?继承:子类拥有父类的所有数据和操作。封装:用抽象的数据类型将数据和基于数据的操作
3、封装在一起,数据被保护在抽象数据类型内。多态:一个程序中同名的不同方法共存的情况。有两种形式的多态重载与重写。 抽象类是否可以继承实体类?抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。当类T只声明了私有实例构造函数时,则在T的程序文本外部,是否可以从T派生出新的类,是否可以直接创建T的任何实例。不可以,不可以C#中有没有静态构造函数,如果有是做什么用的? 有. 静态构造函数用于初始化类。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。静态构造函数既没有访问修饰符,也没有参数。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初
4、始化类。无法直接调用静态构造函数。在程序中,用户无法控制何时执行静态构造函数。静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。什么是.net? .net是一种平台和框架, .net 不是单纯的语言也不是单纯的工具,它是从底层平台开始构建起来的一个整体框架请以图示方式解释.net framework?VB C+ C# Jscript Common Language Specification XML Webservices Web Forms Windows Forms Data and XML Base Class Library CLR CLI Visua
5、l Studio .NET 程序集与命名空间有什么不同? 命名空间是用于避免命名冲突,专用于组织代码,当代码要在其他某个应用程序中重用时,可以降低复杂性。 程序集是重用代码的一种方式验证控件不同: 可以将相同命名空间中的类部署到不同的程序集中,也可以命名空间中的类部署到一个程序集中命名空间 程序集 有逻辑编译时机制 有物理编译时机制 不是运行时实体 是运行时实体 为源代码元素的名称提供逻辑结构 为可执行文件的运行时提供物理结构 什么是WEB控件?使用WEB控件有那些优势? WEB控件是能拖放在WEB页面上的控件 WEB控件分为:内部控件, 列表控件, 复杂控件, WEB控件优势:l Web 控
6、件是对象,与对象一样,Web 控件拥有方法和属性,并且响应事件l 一旦将 Web 控件包括在 Web 页中,就可以设置其属性并调用其方法l 可以为 Web 控件编写服务器端代码以响应在客户端上发生的事件ASP。NET中共有几种类型的控件?各有什么区别? WEB控件分为:内部控件, 列表控件, 复杂控件, 验证控件 内部控件:内部控件的使用方法与 HTML 控件相同,它们映射到 HTML 元素并通过使用 runat = server 属性在服务器上执行 列表控件:用于在 Web 页中创建数据列表 复杂控件:当希望控件拥有复杂的功能或使用 HTML 元素无法创建的功能丰富的用户界面时,可以使用复杂
7、控件 验证控件:输入控件的数据需要进行准确性和取值范围方面的检查WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。 由于ASP。NET是Web页面和服务端分离的,因此要产生了服务端事件. 使用_doPostBack函数能够自动地把客户端的javascript事件转变为一个服务器端的事件,A框架自动为我们处理有关的细节简化工作。 使用自动传回的特性:在检测到一个特定用户动作时,自动传回能够将这个页面传回服务器以处理事件. 在web控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load事件,然后根据传回的状态信
8、息自动调用服务端事件自动传回是当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到务端。只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件请解释ASP.NET中以什么方式进行数据验证。 A 中有非空验证,比较验证,取值范围验证,正则表达式验证及客户自定义验证五大控件,另还有一个集中验证信息处理控件什么是ASP.Net中的用户控件用户控件是能够在其中放置标记和 Web 服务器控件的容器。然后,可以将用户控件作为一个单元对待,为其定义属性和方法。用户控件以。ascx为扩展名,可以拖到不同的页面中调用,以节省代码。比如登陆可能在多个页面上
9、有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整。问这样的问题,一般是迷惑你。因为新手还是分不清楚用户控件和服务器控件(也称自定义控件),用户控件一般用在内容多为静态,或者少许会改变的情况下,用的比较大,类似ASP中的include。但是功能要强大的多。WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?可以调用例如:C#, Java 和 c+的特点,有什么相同的地方,不同的地方, C#分别从c+和java中吸取了他们那些优点?C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与J
10、ava几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成。微软c#语言定义主要是从C和C+继承而来的,而且语言中的许多元素也反映了这一点.C#在设计者从C+继承的可选选项方面比Java要广泛一些(比如说 structs),它还增加了自己新的特点(比方说源代码版本定义). C#从Java继承而来的特点 类:在C#中类的声明与Java很相似。特点看起来与Java相比没有变化.布尔运算:条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型.从布尔类型到其他类型没有直接的转换过程.布尔
11、常量true和false是C#中的关键字.错误处理:如Java中那样,通过抛出和捕捉异常对象来管理错误处理过程.内存管理:由底层.NET框架进行自动内存垃圾回收. C#从C和C+继承的特点 编译:程序直接编译成标准的二进制可执行形式.结构体:一个C#的结构体与C+的结构体是相似的,因为它能够包含数据声明和方法.但是,不象C+,C#结构体与类是不同的而且不支持继承.但是,与Java相同的是,一个结构体可以实现界面. 预编译:C#中存在预编译指令支持条件编译,警告,错误报告和编译行控制. #error C#独有的特点 中间代码:微软在用户选择何时MSIL应该编译成机器码的时候是留了很大的余地.微软
12、公司很小心的声称MSIL不是解释性的,而是被编译成了机器码.它也明白许多-如果不是大多数的话-程序员认为Java程序要不可避免的比C编写的任何东西都要慢.而这种实现方式决定了基于MSIL的程序(指的是用 C#,Visual Basic,Managed C+-C+的一个符合CLS的版本-等语言编写的程序)将在性能上超过解释性的Java代码.当然,这一点还需要得到事实证明,因为C#和其他生成MSIL的编译器还没有发布.但是Java JIT编译器的普遍存在使得Java和C#在性能上相对相同.象C#是编译语言而Java是解释性的,之类的声明只是商业技巧.Java的中间代码和 MSIL都是中间的汇编形式
13、的语言,它们在运行时或其它的时候被编译成机器代码. 命名空间中的声明:当你创建一个程序的时候,你在一个命名空间里创建了一个或多个类.同在这个命名空间里(在类的外面)你还有可能声明界面,枚举类型和结构体.必须使用using关键字来引用其他命名空间的内容. 基本的数据类型:C#拥有比C,C+或者Java更广泛的数据类型.这些类型是bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double,和decimal.象Java一样,所有这些类型都有一个固定的大小.又象C和C+一样,每个数据类型都有有符号和无符号两种类型.与
14、Java相同的是,一个字符变量包含的是一个16位的Unicode字符.C#新的数据类型是decimal数据类型,对于货币数据,它能存放28位10 进制数字. 两个基本类:一个名叫object的类是所有其他类的基类.而一个名叫string的类也象object一样是这个语言的一部分.作为语言的一部分存在意味着编译器有可能使用它-无论何时你在程序中写入一句带引号的字符串,编译器会创建一个string对象来保存它. 参数传递:方法可以被声明接受可变数目的参数.缺省的参数传递方法是对基本数据类型进行值传递.ref关键字可以用来强迫一个变量通过引用传递,这使得一个变量可以接受一个返回值.out关键字也能声
15、明引用传递过程,与ref不同的地方是,它指明这个参数并不需要初始值. 与COM 的集成:C#对Windows程序最大的卖点可能就是它与COM的无缝集成了,COM就是微软的Win32组件技术.实际上,最终有可能在任何.NET语言里编写COM客户和服务器端.C#编写的类可以子类化一个以存在的COM组件;生成的类也能被作为一个COM组件使用,然后又能使用,比方说, JScript语言子类化它从而得到第三个COM组件.这种现象的结果是导致了一个运行环境的产生,在这个环境里的组件是网络服务,可用用任何.NET语言子类化. 索引下标:一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名
16、引用(就象用数组下标一样)以外是相似的. 代理和反馈:一个代理对象包括了访问一个特定对象的特定方法所需的信息.只要把它当成一个聪明的方法指针就行了.代理对象可以被移动到另一个地方,然后可以通过访问它来对已存在的方法进行类型安全的调用.一个反馈方法是代理的特例.event关键字用在将在事件发生的时候被当成代理调用的方法声明中. 在C中,string str = null与string str = “”的区别。string str = null是不给他分配内存空间,而string str = 给它分配长度为空字符串的内存空怎样理解静态变量?静态成员和非静态成员的区别?静态变量属于类,而不属于对象;
17、并对所有对象所享;静态成员在加类的时候就被加载。静态成员和非静态成员的区别? 静态变量使用 static 修饰符进行声明,静态成员在加类的时候就被加载(在类被实例化时创建,哪个对),通过类进行访问 不带有static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问 一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值 静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等DataReader和DataSet的异同DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection
18、,在线操作数据库,任何对SqlConnection的操作都会引发DataReader的异常,因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的,因为DataReader的特殊性和高性能。所以DataReader是只进的,你读了第一条后就不能再去读取第一条了。DataSet则是将数据一次性加载在内存中。抛弃数据库连接,读取完毕即放弃数据库连接,因为DataSet将数据全部加载在内存中。所以比较消耗内存,但是确比DataReader要灵活,可以动态的添加行,列,数据。对数据库进行回传更新操作。简述静态类和静态成员 静态类中的成员都必须是静态的。静态类无构造方法,并且是密封类
19、无法被继承。 静态成员访问时只能通过类名来访问,不能通过对象访问(和JAVA有区别),this也无法访问静态成员。描述接口的作用充当类的功能界面,接口里的成员属于抽象描述,必须通过类的实现才能使用。如:某个项目有多个模块组成,每个模块由一个开发者完成,开发者只需编写完模块功能实现后,留下的接口供其他人使用。其他人在程序中,使用接口时,只需知道接口的功能,不了解如何实现。当功能模块无法满足需要或功能模块的需求变更时,程序员只需将该功能模块的实现代码进行修改和扩充,而其他调用接口的程序无须改动。接口的这种应用模式成为brige模式(即意图和实现分离)接口反映了面向对象的多态特征,即通过相同方法得到
20、不同实现。接口也反映了面向对象的封装特征,使用者可以不清楚接口成员的实现细节。注意:因为接口成员默认的访问权限是public,所以在实现接口时,类的成员必须为public,且方法名和参数必须一致。描述抽象类 用abstract修饰的类。抽象类可以包含实现的成员。未实现的成员隐含的是virtual属性,子类实现时必须用override关键字。请解释接口的显式实现有什么意义? 接口是其他类型为确保它们支持某些操作而实现的引用类型。接口从不直接创建而且没有实际的表示形式,其他类型必须转换为接口类型。一个接口定义一个协定。实现接口的类或结构必须遵守其协定。接口可以包含方法、属性、索引器和事件作为成员。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2011 最新 net 试题
限制150内