基础知识整理大全.doc_第1页
基础知识整理大全.doc_第2页
基础知识整理大全.doc_第3页
基础知识整理大全.doc_第4页
基础知识整理大全.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 的地方法用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?答:MVC(Model-View-Controller)把交互系统的组成分解成模型、视图、控制器三种部件从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关表示层:是系统的UI部分,负责使用者与整个系统的交互。mvc优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。1.通过把项目分成model view和controller,使得复杂项目更加容易维护。2.没有使用view state和服务器表单控件,可以更方便的控制应用程序的行为3.应用程序通过controller来控制程序请求,可以提供丰富的url重写。4.对单元测试的支持更加出色5.在团队开发模式下表现更出众mvc缺点: 增加成本。1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。2、 分层式结构究竟其优势何在?1、开发人员可以只关注整个结构中的其中某一层;2、可以很容易的用新的实现来替换原有层次的实现;3、可以降低层与层之间的依赖;4、有利于标准化;5、利于各层逻辑的复用。概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。3、 什么是装箱和拆箱?答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。装箱(boxing)是将值类型的数据转化成引用类型,int i=3; object o = i ;便是装箱过程,而拆箱(unboxing)是将饮用类型数据转换值类型,比如int j = (int)o;属于拆箱4、 简述 private、 protected、 public、 internal 修饰符的访问权限。private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。public : 公共成员,完全公开,没有访问限制。internal: 在同一命名空间内可以访问。5、 C#中的委托是什么?事件是不是一种委托? 委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用。是,是一种特殊的委托6、 是大法师的7、 是大法师的8、 存储过程和sql语句的优缺点优点:1.提高性能,减少网络传输,节约时间。2.减少网络流量 存储过程位于服务器上,调用的时候只须传递存储过程的名称以及参数,不用每次访问都传递很长的sql 语句。4.安全性 减少sql 注入式攻击。5.可维护性高 更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。缺点:1.交互性差。2.可移植性差9、 能够阻止某一个类被其他类继承吗?可以,使用关键字sealed10、 能够实现允许某个类别继承,但不允许其中的某个方法被覆写吗?答:可以,标记这个类为public,并标记这个方法为sealed。11、 在方法定义中,virtual有什么含义?答:被virtual修饰的方法可以被子类覆写12、 能够将非静态的方法覆写成静态方法吗?答:不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。13、 解释virtual、sealed、override和abstract的区别virtual申明虚方法的关键字,说明该方法可以被重写sealed说明该类不可被继承override重写基类的方法abstract申明抽象类和抽象方法的关键字,抽象方法不提供实现,由子类实现,抽象类不可实例化。14、 大法官法大声道15、 随碟附送地方16、 ( Ilasm.exe)工具程序以MSIL文件作为输入,生成包含MSIL代码的托管PE文件。17、 在.net编程中,术语“托管环境”是(.net公共语言运行库)18、 在.net(C# or )中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)this(C#) Me().19、 DateTime是否可以为null?不能,因为其为Struct类型,而结构属于值类型,值类型不能为null,只有引用类型才能被赋值null20、 net的错误处理机制是:采用try-catch-finally结构21、 error和exception区别:error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。22、 GerGET与POST的区别在FORM提交的时候,如果不指定Method,则默认为GET请求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;在使用 POST 方法的情况下,传输数据时不会将数据作为 URL 的一部分;它们会作为一个独立的实体来传输。因此,POST 方法更安全,你也可以用这个方法传输更多的数据。而且用 POST 传输的数据不一定要是文本,用 GET 方法传输的却一定要是文本。(1)get是从服务器上获取数据,post是向服务器传送数据。(1)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。(2)对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。(2)GET方式提交的数据最多只能有1024字节,而POST则没有此限制。(3)安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。23、 Response.Redirect和Server.Transfer请求的过程:1)浏览器aspx文件请求-服务器执行-遇到Response.Redirect语句-服务器发送Response.Redirect后面的地址给客户机端的浏览器-浏览器请求执行新的地址2)浏览器aspx文件请求-服务器执行-遇到Server.Transfer语句-服务器转向新的文件可以见Server.Transfer比Response.Redirect少了一次服务器发送回来和客户端再请求的过程.跳转对象:1)Response.Redirect可以切换到任何存在的网页。2)Server.Transfer只能切换到同目录或者子目录的网页.数据保密:1、Response.Redirect后地址会变成跳转后的页面地址。2、Server.Transfer后地址不变,隐藏了新网页的地址及附带在地址后边的参数值。具有数据保密功能。传递的数据量(网址后附带的参数):1、Response.Redirect能够传递的数据以2KB(也就是地址栏中地址的最大的长度)为限。2、传递的数据超过2KB时,务必使用Server.Transfer。24、 提高.NET的性能1 使用异步方式调用Web服务和远程对象只要有可能就要避免在请求的处理过程中对Web服务和远程对象的同步调用,因为它占用的是的ASP.NET 线程池中的工作线程,这将直接影响Web服务器响应其它请求的能力。2 使用适当的Caching策略来提高性能3 判断字符串,不要用比较。/避免if(strABC!=null & strABC!=)/推荐if(!strABC.IsNullOrEmpty)4 页面优化5 用完马上关闭数据库连接6 尽量使用存储过程,并优化查询语句7 只读数据访问用SqlDataReader,不要使用DataSet25、 简单说明一下泛型的有什么好处?泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用好处是类型安全和减少装箱、拆箱。提高性能、类型安全和质量,减少重复性的编程任务26、 UDP连接和TCP连接的异同答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.27、 请解释转发与跳转的区别转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理然后从服务端跳转到其它页面跳转就是指客户端的跳转28、 在.net中,配件的意思是?答:程序集。(中间语言,源数据,资源,装配清单)29、 概述反射和序列化反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。30、 什么叫应用程序域?CTS、CLS、CLR分别作何解释?什么是受管制的代码?什么是强类型系统?答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。答:CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。答:unsafe:非托管代码。不经过CLR运行。答:RTTI:类型识别系统。31、 和 有什么区别?表示绑定的数据源是服务器端代码块 常量32、 Bind和Eval函数的区别 绑定表达式 1 Eval 单向绑定:数据是只读的 Bind 双向绑定:数据可以更改,并返回服务器端,服务器可以处理更改后的数据,如存入数据库.2.当对次表达式操作时候,必须用Eval 如3 绑定控件的属性时要用Bind,而Eval则是其它一些。 例如:asp:TextBox ID=First RunAt=Server Text= / 例如:33、 ASP.net的身份验证方式有哪些?分别是什么原理?答:Windwos(默认) 用IIS.From(窗体) 用帐户.Passport(密钥)34、 Session有什么重大BUG,微软提出了什么方法加以解决?答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件35、 在C中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。答:string str = null 是不给他分配内存空间,而string str = 给它分配长度为空字符串的内存空间。36、 string是值类型还是引用类型?引用类型37、 String类与StringBuilder类有什么区别?为什么在.Net类库中要同时存在这2个类?(简答)stringBuilder比string更节约内存,所以stringBuilder更快String 对象是不可改变的。每次使用 System.String 类中的方法之一或进行运算时(如赋值、拼接等)时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。而 StringBuilder 则不会。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。38、 C#中所有对象共同的基类是什么?System.Object39、 如何在C#中实现继承?在类名后加上一个冒号,再加上基类的名称。40、 C#支持多重继承吗?不支持。可以用接口来实现。41、 被protected修饰的属性/方法在何处可以访问?在继承或间接继承与这个类的子类中可以访问。42、 Dfd私有成员会被继承么?会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。43、 C#提供一个默认的无参构造函数,当我实现了另外一个有一个参数的构造函数时,还想保留这个无参数的构造函数。这样我应该写几个构造函数?答:两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参构造函数。44、 大概描述一下ASP.NET服务器控件的生命周期答:初始化 - 加载视图状态 - 处理回发数据 - 加载 - 发送回发更改通知 - 处理回发事件 - 预呈现 - 保存状态 - 呈现 - 处置 - 卸载45、 F重载与覆盖的区别?答:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。3、覆盖要求参数列表相同;重载要求参数列表不同。4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调 用时的实参表与形参表来选择方法体的。46、 类成员有_种可访问形式?答:this.; new Class(); .Method;47、 用sealed修饰的类有什么特点?密封,不能继承。48、 什么是Application Pool?答:Web应用,类似Thread Pool,提高并发性能。49、 需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.答:string inputStr= xx xx ;inputStr=Regex.Replace(inputStr.Trim(), *, );50、 在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法。答:using 引入名称空间或者使用非托管资源new 新建实例或者隐藏父类方51、 请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。答:session(viewstate) 简单,但易丢失application 全局cookie 简单,但可能不支持,可能被伪造input ttype=hidden 简单,可能被伪造url参数 简单,显示于地址栏,长度有限数据库 稳定,安全,但性能相对弱52、 .net的错误处理机制是什么?答:.net错误处理机制采用try-catch-finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。53、 Df对于这样的一个枚举类型:enumColor:byteRed,Green,Blue,orange答:string ss=Enum.GetNames(typeof(Color);byte bb=Enum.GetValues(typeof(Color);54、 简述 private、 protected、 public、 internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。public : 公共成员,完全公开,没有访问限制。 internal: 当前程序集内可以访问。55、 ADO.NET相对于ADO等主要有什么改进?答:1:不依赖于ole db提供程序,而是使用.net托管提供的程序,2:不使用com3:不在支持动态游标和服务器端游 4:,可以断开connection而保留当前数据集可用 5:强类型转换 6:xml支持56、 HashMap和Hashtable的区别答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.57、 在.Net托管代码中我们不用担心内存漏洞,这是因为有了_ GC _?58、 XML与HTML的主要区别答:1. XML是区分大小写字母的,HTML不区分。2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略或者之类的结束 标记。在XML中,绝对不能省略掉结束标记。3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。59、 请指出GAC的含义?答:全局程序集缓存。它解决了几个程序共享某一个程序集的问题。不必再将那个被共享的程序集拷贝到应用程序目录了,其实这道理很简单,.net应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就可以直接使用,没有再到应用程序目录进行查找。60、 在A中所有的自定义用户控件都必须继承自System.Web.UI.UserControl61、 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复intintArr=newint100;ArrayListmyList=newArrayList();Randomrnd=newRandom();while(myList.Count100)intnum=rnd.Next(1,101);if(!myList.Contains(num)myList.Add(num);for(inti=0;i100;i+)intArri=(int)myListi;62、 什么是虚函数?什么是抽象函数?答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。63、 在.Net中所有可序列化的类都被标记为答:serializable64、 为了对一个类实现自定义的序列化,应使该类实现(Iserializable)接口65、 您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么做?( 重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。)66、 对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( ABC )A.Close B.DisposeC.FinalizeD.using E.Quit67、 以下哪个是可以变长的数组?(ArrayList )68、 .Net依靠以下哪一项技术解决COM存在的Dll Hell问题的?( Side By Side )69、 .Net Framework通过什么与COM组件进行交互操作?(Interop)70、 用户类若想支持Foreach语句需要实现的接口是: (IEnumerable A )71、 要创建多文档应用程序,需要将窗体的(IsMdiContainer)属性设为true。72、 接口是一种引用类型,在接口中可以声明(方法、属性、索引器和事件A),但不可以声明公有的域或私有的成员变量。73、 ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是(AHTML控件和Web控件)74、 在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(类型),必要时还要设置参数尺寸。75、 Server.Transfer和Response.Redirect的区别是什么?(常考)答: Server.Transfer仅是服务器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;Response.Redirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。Server.Transfer是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 这个过程中浏览器和Web服务器之间经过了一次交互。 Response.Redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求。这个过程中浏览器和Web服务器之间经过了两次交互。76、 是否可以从一个static方法内部发出对非static方法的调用? 不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部不能发出对非static方法的调用。77、 列举ASP.NET 页面之间传递值的几种方式。 1.使用QueryString, 如.?id=1; response. Redirect(). 2.使用Session变量 3.使用Server.Transfer4.Cookie传值78、 能用foreach遍历访问的对象的要求需要实现IEnumerable79、 说出一些常用的类、接口,请各举5个 要让人家感觉你对.Net开发很熟,所以,不能仅仅只列谁都能想到的那些东西,要多列你在做项目中涉及的那些东西。就写你最近写的那些程序中涉及的那些类。常用的类:StreamReader、WebClient、Dictionary、StringBuilder、SqlConnection、FileStream、File、Regex、List 常用的接口:IDisposable、IEnumerable、IDbConnection、IComparable、ICollection、IList、IDictionary要出乎意料!不要仅仅完成任务!笔试不是高考!处处要显出牛!80、 Session有什么重大BUG,微软提出了什么方法加以解决?(常考)iis中由于有进程回收机制,系统繁忙的话Session会丢失,IIS重启也会造成Session丢失。这样用户就要重新登录或者重新添加购物车、验证码等放到Session中的信息。可以用State server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。但是(一定要写上,这样才够拽)我认为这不是Bug,只能说是In-Proc方式存储Session的缺陷,缺陷是和Bug不一样的,In-Proc方式存储Session会由服务器来决定什么时候释放Session,这是By Design,In-Proc方式不满足要求的话完全可以用StateServer和数据库的方式。StateServer还可以解决集群Session共享的问题81、 说说在软件设计中你遇到的以空间换时间的例子?回答:谈Cache(缓存)、索引这些例子dataset,数据库表的数据冗余设计。用额外的磁盘、内存空间的消耗来提高执行速度。82、 不用中间变量交换两个变量 /int i = 10; /int j = 20; Console.WriteLine(i=0,j=1, i, j); i = i + j;/i=30 j = i - j;/j=10; i = i - j;/i=20; Console.WriteLine(i=0,j=1,i,j);83、 网站想要实现文件防盗链的功能,说说你的解决方案。读取HTTP报文头中的UrlReferrer在Application_BeginRequest中我们可以判断用户的请求是否来源于本网站。如果不是我们可以终止用户的请求(Response.End();)!84、 请编程遍历WinForm页面上所有TextBox控件并给它赋值为string.Empty? 答: foreach(System.Windows.Forms.Controlcontrolinthis.Controls) if(controlisSystem.Windows.Forms.TextBox) System.Windows.Forms.TextBoxtb=(System.Windows.Forms.TextBox)control; tb.Text=String.Empty; 85、 C#中property与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?答:attribute:自定义属性的基类;property :类中的属性86、 在.net(C# or )中如何用户自定义消息,并在窗体中处理这些消息。答:在form中重载DefWndProc函数来处理消息:protectedoverridevoidDefWndProc(refSystem.WinForms.Messagem)switch(m.msg)caseWM_Lbutton:/string与MFC中的CString的Format函数的使用方法有所不同stringmessage=string.Format(收到消息!参数为:0,1,m.wParam,m.lParam);MessageBox.Show(message);/显示一个消息框break;caseUSER:/处理的代码default:base.DefWndProc(refm);/调用基类函数处理非自定义消息。break;87、 什么是反射和序列化?答:反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。88、 利用operator声明且仅声明了=,有什么错误么?答:要同时修改Equale和GetHash() ? 重载了= 就必须重载 !=89、 ASP.Net页面生命周期每个页面的生命周期为用户的每一次访问,也就是说每一次客户端与服务器之间的一个往返过程.全局变量的生命周期在此之间.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;90、 面向对象的思想主要包括什么?答:任何事物都可以理解为对象,其主要特征: 继承。封装。多态。特点:代码好维护,安全,隐藏信息91、 什么是Interface?它与Abstract Class有什么区别?接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。92、 什么是抽象类(abstract class)?一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。何时必须声明一个类为抽象类?当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。93、 C#中的接口和类有什么异同。异:不能直接实例化接口。接口不包含方法的实现。接口、类和结构可从多个接口继承。但是C# 只支持单继承:类只能从一个基类继承实现。类定义可在不同的源文件之间进行拆分。同:接口、类和结构可从多个接口继承。接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。接口可以包含事件、索引器、方法和属性。一个类可以实现多个接口。94、 如何把一个Array复制到ArrayList里答:foreach( object o in array )arrayList.Add(o);95、 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。int intArr=new int100;ArrayList myList=new ArrayList();Random rnd=new Random();while(myList.Count100)int num=rnd.Next(1,101);if(!myList.Contains(num)myList.Add(num);for(int i=0;i100;i+)intArri=(int)myListi;96、 OSI网络结构的七层模型及其核心思想是什么第七层:应用层 定义了用于在网络中进行通信和数据传输的接口 - 用户程式; 提供标准服务,比如虚拟终端、文件以及任务的传输和处理;第六层:表示层 掩盖不同系统间的数据格式的不同性; 指定独立结构的数据传输格式; 数据的编码和解码;加密和解密;压缩和解压缩第五层:会话层 管理用户会话和对话; 控制用户间逻辑连接的建立和挂断; 报告上一层发生的错误第四层:传输层 管理网络中端到端的信息传送; 通过错误纠正和流控制机制提供可靠且有序的数据包传送; 提供面向无连接的数据包的传送;第三层:网络层 定义网络设备间如何传输数据; 根据唯一的网络设备地址路由数据包; 提供流和拥塞控制以防止网络资源的损耗第二层:数据链路层 定义操作通信连接的程序; 封装数据包为数据帧; 监测和纠正数据包传输错误第一层:物理层 定义通过网络设备发送数据的物理方式; 作为网络媒介和设备间的接口; 定义光学、电气以及机械特性。97、 白盒测试和黑盒测试答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:1、是否有不正确或遗漏的功能?2、在接口上,输入是否能正确的接受?能否输出正确的结果?3、是否有数据结构错误或外部信息(例如数据文件)访问错误?4、性能上是否能够满足要求?5、是否有初始化或终止性错误?软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:1、对程序模块的所有独立的执行路径至少测试一遍。2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。3、在循环的边界和运行的界限内执行循环体。4、测试内部数据结构的有效性,等等。98、 请简述一下用Socket进行同步通讯编程的详细步骤1、在应用程序和远程设备中使用协议和网络地址初始化套接字2、在应用程序中通过指定端口和地址建立监听3、远程设备发出连接请求4、应用程序接受连接产生通信scoket5、应用程序和远程设备开始通讯(在通讯中应用程序将挂起直到通讯结束)6、通讯结束,关闭应用程序和远程设备的Socket回收资源99、 GAC什么是?它解决了什么问题?Gloal Assembly Cache,全局应用程序集缓存。它解决了几个程序共享某一个程序集的问题。不必再将那个被共享的程序集拷贝到应用程序目录了,其实这道理很简单,.net应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就可以直接使用,没有再到应用程序目录进行查找。100、 PID是什么?在做系统的故障排除时如何使用它?PID是进程编号,在系统发现故障的时候,可以根据它寻找故障所发生的具体进程,并且可通过visual 等ide将故障进程附加到进程中进行调试(debug)101、 什么是强类型,什么是弱类型?哪种更好些?为什么?强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。一般用于编译型编程语言,如c+,java,c#,pascal等,弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如javascript,vb等102、 私有程序集与共享程序集有什么区别?一个私有程序集通常为单个应用程序所使用,并且存储于这个应用程序所在的目录之中,或此目录下面的一个子目录中。共享程序集通常存储在全局程序集缓存(Global Assembly Cache)之中,这是一个由.NET运行时所维护的程序集仓库。共享程序集通常是对许多应用程序都有用的代码库,比如.NET Framework类。103、 WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。在web控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load事件,然后根据传回的状态信息自动调用服务端事件自动传回是当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到务端只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件104、 base这个关键字有哪几种语法?override呢?答案:base两个语法,分别是调用基类构造函数和调用基类方法,override用于重写基类方法。105、 请解释什么是上下文对象,在什么情况下要使用上下文对象上下文对象是指HttpContext类的Current 属性,当我们在一个普通类中要访问内置对象(Response,Request,Session,Server,Appliction等)时就要以使用此对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论