[转]C#面试题

正文转自http://www.cnblogs.com/lhws/archive/2010/09/21/1827115.html

1.保护数据库的完整性、一致性、你喜爱用触发器还是自写业务逻辑?为什么?

报经:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方法的频率最好;其次用触发器,这种措施可以保不管何种工作体系访问数据库都能够保全数据库的完整性、一致性;最后重复考虑就此自写业务逻辑实现,但这种方法效率低、编程最复杂,当也下下之策。

 

2.什么是工作?什么是沿?

报经:事务是据一个做事单元,它含了同组数据操作命令,并且具有的吩咐作为一个整体一并为网提交或撤销请求操作,即这组命令要么都尽,要么都无实行。

  锁是在多用户环境中对数据的看的限。SqlServer自动锁定特定记录、字段或文件,防止用户访问,以保护数据安全或者预防出现数据操作问题,锁得保证工作的完整性和并发性。

 

3.呀是索引,有什么长?

答:索引象书的目录类似,索引使数据库程序无需扫描整个表,就好当里找到所待之数码,索引包含了一个表中包含值的列表,其中蕴含了一一值的行所存储的职,索引可以是单科或一致组列,索引提供的表中数据的逻辑位置,合理划分索引能够大大提高数据库性能。

 

4.视图凡是什么?游标是什么?

报经:视图是如出一辙栽虚拟表,虚拟表具有和物理表相同之作用,可以对虚拟表进行加该查操作;

   
视图通常是一个还是多单说明底执行还是列的子集;

   
视图的结果再次易于了解(修改视图对基表不影响),获取数据更爱(相比多表查询更有利于),限制数据检索(比如用隐藏某些行或列),维护还有利。

   

   
游标对查询出来的结果集作为一个单元来有效之处理,游标可以一定于结果集的特定行、从结果集的目前职务检索一行要多尽、可以对结果集中当前职展开改动、

 

5.哟是储存过程?有啊长?

报经:存储过程是平组予编译的SQL语句

   
它的助益:1.许模块化程序设计,就是说就待创造同差经过,以后在先后中尽管好调用该过程任意次。

            2.同意再次快执行,如果某个操作需要执行大气SQL语句或重复执行,存储过程较SQL语句执行的如赶快。

            
3.调减网络流量,例如一个得数百执的SQL代码的操作发生同样条实施报告句完成,不欲在网被发送数百实行代码。

       4.还好之平安机制,对于从未权限履行存储过程的用户,也可授权他们推行存储过程。

 

6.什么是触发器?

报:触发器是一致种新鲜类别的蕴藏过程,出发器主要通过波触发而被执行之,

  触发器的长:1.深化约束,触发器能够提供比CHECK约束;

         2.跟变化,触发器可以跟数据库内的操作,从而不同意未经同意许可的换代与浮动;

         3.联级运算,比如某表上的触发器中含对任何一个表底数码操作,而该操作而导致该表上之触发器被硌

 

7.简单介绍下ADO.NET和ADO主要发生啊改进?

报经:ADO以Recordset存储,而ADO.NET则盖DataSet表示,ADO.NET提供了数据集和多少适配器,有利于贯彻分布式处理,降低了针对性数据库服务器资源的耗费。

 

7.1
ASP.NET与ASP相比,主要有什么进步?

报:ASP.NET实现了面向对象编程,预编译的劳务器端代码而非像ASP那样说实施提高了性,代码分离易于管理,可订制和扩展性,功能强大的开销工作,更好之安体制。

 

7.2
C#受之嘱托是啊?事件是休是如出一辙栽委托?

答:委托本质上是同栽“方法接口”,它相当给C/C++中之函数指针,当然它们比较函数指针安全,在C#丁司空见惯用于事件处理。事件不是委托,不过鉴于事件之性决定了拍卖它的程序逻辑能访问的参数,因此,在C#屡遭处理事件的逻辑都打包也委托。

 

8.哪管一个array复制到arrayist里

答:foreach( object arr in
array)arrayist.Add(arr);

 

8.1
列举ADO.NET中之五单至关重要对象,并简短描述

报经:Connection连接对象,Command执行命令和存储过程,DataReader向前只读的数据流,DataAdapter适配器,支持增删查询,DataSet数据级对象,相当与内存里的一致摆放或多张表。

 

9.概述三叠组织体系

报:表示层(UI),业务逻辑层(BLL),数据访问层(DAL)

 

10.呀是装箱和拆箱?什么是重载?

答:装箱就是管值类型转成引用类型,拆箱相反把援转换成值类型。

  重载就是因一个术名相同,参数个数不一样,返回值可以一样之方。

 

11.简述WebService

报经:WebService服务可描述为可以在web上配置并得以吃别应用程序或另服务调用的效力。所谓服务就是是系统提供平等组接口,并经过接口使用系统提供的成效,WebService服务得供任何商店到客户,企业到商家,点对点要部门本着机关简报所欲的劳务,比如一个合作社可以经过网络连接到另外一个商家的服务,从而一直传送订购单。

 

12.面向对象的想主要包括什么?

答:继承、封装、多态

 

13.列推选一下而所了解的XM技术及其应用

答:xml可以据此来做网页(xslt)、可以当数据库、可以为此来保存对象的趋向(web服务好象是基于此的)。

 

14.C#遭逢之接口及类闹什么异同。

报经:接口,是足以多延续,类只有单继承.接口强调了您得贯彻,而没有具本实现的道以及虚类有点相像。

 

15.new 重在字用法

答:(1)new 运算符
用于创建对象和调用构造函数。

    (2)new 修饰符
用于为基类成员隐藏继承成员。

    (3)new 约束  
用于在泛型声明遭约束或当类型参数的参数的类型。

 

14.DataGrid的Datasouse可以连接什么数据源

报经:DataTabe,DataView,DataSet,DataViewManager,任何实现IListSource接口的零部件,任何实现IList接口的机件

 

15.概述反射和序列化

报:反射:公共语言运行库加载器管理应用程序域。这种管理包括将每个程序集加载到对应的应用程序域以及控制每个程序集中类型层次结构的内存布局。程序集带有模块,而模块包含类型,类型又含有成员。反射则提供了包装程序集、模块和花色的靶子。您可动用反射动态地开创项目的实例,将品种绑定到现有对象,或从现有对象中落类。然后,可以调用类型的计还是访问该字段和总体性。

  序列化:序列化是用目标状态转换为可保障或传输的格式的过程。与序列化相对的凡相反序列化,它将流转换为目标。这有限独过程结合起来,可以轻松地蕴藏和传输数据。

 

16.概述O/R Mapping
的原理

报经:利用反射,配置将目标同数据库表映射。

 

17.可访问性级别有哪几栽

报经:pubic 访问不被限制。

  protected
访问仅限于包含类或打包含类派生的类别。

  internal
访问仅限于当前次集。

  protected internal
访问仅限于从包含类派生的当下次集或项目。

  private 访问仅限于包含类型。

 

18.sealed修饰符有啊特色

答:sealed
修饰符可以采取于类、实例方法以及总体性。

    密封类不能够为延续;

  密封方法会重写基类中之道,但该本人不克在其他派生类中尤为重写。当以被道或者性质时,sealed
修饰符必须尽跟 override一起利用。

 

19.列举ADO.NET中的联名享类和数据库特定类

答:共享类:DataSet,DataTable,DataRow,DataColumn,DataRealtion,Constraint,DataColumnMapping,DataTableMapping

  特定类:(x)Connection,(x)Command,(x)CommandBuilder,(x)DataAdapter,(x)DataReader,(x)Parameter,(x)Transaction

 

20.C#饱受,string str = null 与 string
str =””,请尽量用文字说明区别

报:string
str=””初始化对象分配空间,而stringstr=null初始化对象

 

21.详述.NET里class和struct的异同

报:结构以及类似共享几乎拥有同一的语法,但组织比类受到的界定更多:尽管结构的静态字段可以初始化,结构实例字段声明还是匪可知应用初始值设定项。

  结构不能够声称默认构造函数(没有参数的构造函数)或析构函数。

  结构的副本由编译器自动创建与销毁,因此无待运用默认构造函数和析构函数。实际上,编译器通过为有字段赋予默认值(参见默认值表)来贯彻默认构造函数。

  结构不能够从类或其它组织继续。

  结构是值类型 —
如果打组织创造一个靶并以欠对象与给某变量,变量则含有结构的全套价。复制包含结构的变量时,将复制所有数据,对新副本所召开的别样修改都未会见改变原来副本的数。

  由于组织不使用引用,因此结构没有标识 —
具有同样数量的蝇头单值类型实例是无法区分的。C#
中之兼具值类型本质上且继承自ValueType,后者继续自
Object。编译器可以于一个曰装箱的过程中将值类型转换为援类型。

 

布局有以下特点:

  结构是值类型,而近乎是援引类型。

  向方传递结构时,结构是透过传值方式传递的,而休是当做援传递的。

  同类似不同,结构的实例化可以无动
new 运算符。

  结构可以声明构造函数,但她要带来参数。

  一个布局不能够从其它一个结构还是相近继承,而且无克看做一个看似的基。所有结构都一直接轨自
System.ValueType,后者继续自 System.Object。

  结构可以兑现接口。

  以组织被初始化实例字段是不当的。

 

22.什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?
CTS、CLS和CLR分别作何解释?

报:应用程序域:应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前带国有语言运行库。应用程序域提供了一个双重安全、用途还广阔的处理单元,公共语言运行库可运该单元提供应用程序之间的隔离。

  托管代码:使用基于公共语言运行库底言语编译器开发的代码称为托管代码;托管代码有众多长,例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和安排支持、简化的组件交互模型、调试以及分析服务等。

  强类型:C#
是强类型语言;因此每个变量和对象都须持有声明类型。

  装箱和拆箱:装箱和拆箱使值类型能够吃视为对象。对值类型装箱将将该值类型打包到
Object
引用类型的一个实例中。这叫值类型可以储存于垃圾回收堆中。拆箱将从今目标吃提值类型。

  重载:每个门类成员还起一个唯一的签约。方法签名由艺术名称以及一个参数列表(方法的参数的一一与花色)组成。只要签约不同,就足以当平种植档次内定义有相同名称的又法。当定义两栽要多种具同等名称的方法时,就如作重载。

  CTS通用型系统 (common type system)
:一种植确定公共语言运行库如何定义、使用以及治本型的专业。

  CLR公共语言运行库:.NET Framework
资了一个称为公共语言运行库底周转时环境,它运行代码并提供使出进程又轻松的劳动。

  CLS公共语言专业:要与外对象全交互,而不论是这些目标是以何种语言实现的,对象要就望调用方公开那些它们要同的并行用底备语言的通用功能。为之概念了公私语言专业
(CLS),它是很多应用程序所急需的如出一辙仿中心语言功能。

 

23.值类型及援类型的分别?

答:基于值类型的变量直接包含值。将一个值类型变量赋给其他一个值类型变量时,将复制包含的价。这与援类型变量的赋值不同,引用类型变量的赋值只复制对目标的援,而不复制对象自我。

  所有的值类型均隐式派生自
System.ValueType。与援类型不同,从值类型不可能派生出新的种类。但与援类型相同之是,结构吧可以实现接口。

  与援类型不同,值类型不可能含有
null 值。然而,可空类型功能允许用null 赋给值类型。
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。

  值类型主要由少数好像组成:结构、枚举;
结构分为以下几像样:Numeric(数值)类型、整型、浮点型、decimal、bool、用户定义的结构。

  引用类型的变量又称为对象,可存储对实在多少的援。声明引用类型的重要性字:class、interface、delegate、内置引用类型:
object、string

 

24.怎么理解委托

答:委托类似于 C++
函数指针,但它们是路安全的。委托允许以方作为参数进行传递。委托可用以定义回调方法。委托可以链接以齐;例如,可以针对一个轩然大波调用多只法子。方法无需同信托签名精确匹配。有关还多信息,请参见协变和逆变。C#
2.0
版引入了匿名方式的定义,此类措施允许用代码块当参数传递,以替单独定义的点子。

 

25.C#受之接口及好像闹什么异同?

报经:异:不能够一直实例化接口。

    接口不带有方法的兑现。

    接口、类及结构可打多个接口继承。但是C#类只支持单继承:类只能由一个基类继承实现。类定义可每当不同之源文件之间展开拆分。

  同:接口、类与组织可由多独接口继承。

    接口类似于肤浅基类:继承接口的别样不抽象类型且不能不贯彻接口的有成员。

    接口可以分包事件、索引器、方法和属性。

 

26.ASP.net的身份验证方式来哪?

报经:Windows
身份验证提供次:提供关于如何以Windows 身份验证与Microsoft Internet
信息服务 (IIS) 身份验证结合使用来管 ASP.NET
应用程序安全的消息。

  Forms
身份验证提供程序:提供关于如何用你自己之代码创建应用程序特定的登录窗体并实行身份验证的信息。使用
Forms 身份验证的同种便利方法是运 ASP.NET 成员身份和 ASP.NET
登录控件,它们一起提供了相同种植才待少量或者任需代码就足以收集、验证和治本用户凭据的艺术。

  Passport
身份验证提供次:提供有关由Microsoft
提供的集中身份验证服务之音讯,该服务呢成员站点提供单纯登录和基本配置

 

27.走目录的图

报经:Active
Directory存储了有关网络对象的音信,并且被管理员及用户会轻松地搜寻和以这些信。

  Active
Directory使用了一样种结构化的数额存储方,并以此作为基础对目录信息进行合乎逻辑的分层组织。

 

28.解释一下UDDI、WSDL的意义及其作用

报:UDDI:统一描述、发现及合协议(UDDI,
Universa Description, Discovery and
Integration)是同样模仿基于Web的、分布式的、为Web服务提供的信注册中心的实现标准规范,同时也含有一组要公司能够拿自身提供的Web服务注册为让别的公司会察觉的走访协议的兑现规范。UDDI
提供了一如既往组根据专业的专业用于描述和意识服务,还提供了相同组根据因特网的实现。

  WSDL:WSDL描述Web服务之集体接口。这是一个根据XML的关于什么与Web服务通讯与动的劳务描述;

  作用: 服务 URL 和命名空间
:网络服务的花色(可能还包SOAP
的函数调用,正像我所说罢之,WSDL足够自如地失去讲述网络服务的常见内容)。有效函数列表,每个函数的参数,每个参数的档次
,每个函数的返回值及其数据类型。

 

29.什么是SOAP?

答:SOAP(Simpe Object Access Protoco
)简单对象看协议是在疏散或分布式的条件中交换信息并尽远程过程调用的商谈,是一个冲XML的商议。使用SOAP,不用考虑其他特定的传协议(最常用的还是HTTP协议),可以允许任何项目的对象要代码,在外平台上,以其他直接语言相互通信。

  SOAP
是同一种植轻量级协议,用于在分散型、分布式环境面临交换结构化信息。 SOAP 利用
XML
技术定义一栽而扩大的音信处理框架,它提供了同种而经多种脚协议进行交换的信息结构。这种框架的规划思想是要单独为其他一样栽特定的编程模型和另特定实现的语义。

  SOAP 概念了千篇一律种艺术以便将 XML
消息于 A 点传送至 B 点。为夫,它提供了相同种植基于
XML且有着以下特点的消息处理框架:1) 可扩大,2)
可经过多底部网络协议使用,3) 独立为编程模型。

 

30.什么安排一个ASP.net页面?

答:VS 2005及VS
2003且发出发布机制。2003得以宣告然后再度复制部署。VS2005差不多可以直接配置及对应位置。

 

31.怎样理解.net中的废物回收机制?

报经:.NETFramework
的污物回收器管理应用程序的内存分配与假释。每次你运 new
运算符创建对象时,运行库都由托管堆为该目标分配内存。只要托管堆中来地址空间可用,运行库就会持续为新目标分配空间。但是,内存不是最最好之。最终,垃圾回收器必须尽回收以释放部分内存。垃圾回收器优化引擎根据着进行的分配情况确定实施回收的最佳时。当垃圾回收器执行回收时,它检查托管堆中不再被应用程序使用的目标并推行必要的操作来回收它们占有的内存。

 

32.概述.NET中的GC机制。

报:GC的全称是garbage
collection,中文名称垃圾回收,是.NET中针对内存管理的相同栽力量。垃圾回收器跟踪并回收托管内存中分红的目标,定期执行垃圾回收以回收分配受没有行之有效引用的对象的内存。当用可用内存不克满足内存请求时,GC会自动进行。

  以进行垃圾回收时,垃圾回收器会首先搜索内存中的托管对象,然后打托管代码中寻觅于引用的对象并记为可行,接着放没有吃标记为使得之靶子并取消内存,最后整理内存以使得对象活动到一同

 

33.ASP.NET中时时表现内置对象?

答:Response、Request、Server、Session、Application、Cookie

 

34.死锁的必要条件?怎么战胜?

报:系统的资源贫乏,进程的促进的一一不得体,资源分配不当,一个资源每次只能吃一个历程使,一个资源要资源时,而此时这资源就死,对已经取资源不放,进程获资源时,未利用完前,不可知强行剥夺。

 

35.接口是否足以继承接口?抽象类是否好实现接口?抽象类是否可持续实体类?

答:接口是得延续接口的,抽象类是好兑现接口的,抽象类可以持续实体类,但是出只原则,条件是,实体类必须要发生肯定的构造函数。

 

36.构造器Constructor是否可被连续?是否可以被Override?

答:Constructor不可以让接续,因此无可知为再次写(Overriding),但可以吃重载(Overloading).

 

37.是否足以继承String类?

报经:因为String类是final类所以不得以继续string类。

 

38.当一个线程进入一个靶的办法后,其它线程是否好进该目标的主意?

报经:不可以,一个对象的章程就会由一个线程访问。

 

39.用最得力之法算有2趁以8相当被几?

答:2<<3.

 

40.C#是否足以本着内存直接进行操作?

答:C#是得对内存进行直接操作的,虽然很少用到指针,但是C#是得以指针的,在于是的早晚需要以前面加unsafe,,在.net中运用了垃圾堆回收机制(GC)功能,它替了程序员,不过在C#受到无可以直接动用finalize方法,而是在析构函数吃调用基类的finalize()方法。

 

41.数组有无出Length()这与方法?string有没发生这个法子?

报经:数组中从不这点子,但有此特性,string中生是主意。

 

42.Error暨Exception有是别?

答:error代表恢复不是不容许,但是非常艰难,exception代表同样种植实际还是落实问题,它表示程序运行正常不得以来的。

 

43.HashMap和Hashtable区别?

答:HashMap是Hashtable的轻量级实现,非线程安全的实现他们还落实了map接口,主要分是HashMap键值可以啊空null,效率可以高于Hashtable。

 

44.Collection和Collections的区别?

报:Collection是集合类的上司接口,Collections是对准集合类的一个扶类似,它提供平等系列静态方法来落实对各种集合的追寻,排序,线程安全化操作。

 

45.Override,
Overload,的区别?

报:Override是再次写的意,它意味着又写基类的法,而且方式的名称,返回路,参数类型,参数个数要与基类相同。

  Overload是重载是意思,它为代表又写基类的不二法门,但是若方法名相同,别的可以不同。

 

46.于一个BS结构面临要传递变量值时,不能够使session,cookie,application,你发出几遭到艺术?

答:this.server.Transfer,Querystring.

 

47.C#种索引器实现过程,是否只能根据数字索引?

答:不是的,可以是擅自档次。

 

48.Const和ReadOnly?

报:Const用来阐明编程时表明常量,ReadOnly用来表明运行时常量。

 

49.UDP同TCP连接有跟异同?

报:TCP是传输控制协议,提供的是面向连接的,是十拿九稳的,字节约流服务,当用户和服务器彼此进行数量交互的当儿,必须于他们数据交互前使拓展TCP连接之后才能够传输数据。TCP提供过重拨,检验数据功能。

  UDP是用户数据报协议,是一个简便的面向数据报的传导协议,是不可靠的连日。

 

50.经过与线程分别该怎么亮?

报经:进程是比线程大之程序运行单元,都是由于操作系统所体会的体系运行单元

   
一个顺序中足足要有一个经过,有一个历程遭到,至少要出一个线程,线程的撤并标准而比较进程使稍稍,进程有独立的内存单元,线程是共享内存,从而极大的提高了程序的运转效率和一个进程中之基本上只线程可以并作执行。

 

51.每当.NET中所有类的基类是?

答:object。

 

52.能够因此foreach遍历访问的目标要贯彻?

报经:需要实现IEnumerable接口和GetEnumerator()方法。

 

53.Heap与stack的差别?

答:Heap是积,空间是出于手动操作分配和释放的,它的存储区很十分之随意存储区。

  Stack是仓,是由是操作系统自动分配与刑释解教的,栈上的上空是鲜的。程序于编译期间变量和函数分配内存都是当栈上进行的,且在运转时函数调用时之参数的传递也是于栈上进行的。

 

54.伸手编程遍历页面及具有TextBox控件并为它们赋值为string.Empty?

答:foreach(System.Windows.Forms.Control
control in this.Controls)

  {

    if (control
isSystem.Windows.Forms.TextBox)

    {

      System.Windows.Forms.TextBox tb
=(System.Windows.Forms.TextBox)control ;

       tb.Text = String.Empty
;

    }

  }

 

55.央编程实现一个冒泡排序算法?

答:int [] array= new int [*]
;

  int temp = 0 ;

  for (int i = 0 ; i <
array.Length – 1 ;i++)

  {

    for (int j = i + 1 ; j <
array.Length ;j++)

    {

      if (array[j] <
array[i])

      {

        temp = array[i]
;

        array[i] = array[j]
;

        array[j] = temp
;

      }

    }

  }

 

56.求以下表达式的值,写来公想到的平种植或几乎种实现方式:
1-2+3-4+……+m

答:int Num
=this.TextBox1.Text.ToString() ;

  int Sum = 0 ;

  for (int i = 0 ; i < Num + 1 ;
i++)

  {

    if((i%2) == 1)

    {

      Sum += i ;

    }

    else

    {

      Sum = Sum – i ;

    }

  }

  Console.WriteLine(Sum.ToString());

  Console.ReadLine() ;

 

57.哟让应用程序域?

答:应用程序域可以清楚为同样栽轻量级进程。起及平安的意图。占用资源小。

 

58.什么凡叫管制之代码?

报:unsafe:非托管代码。不经过CLR运行。

 

59.在.net中,配件的意是?

报:程序集。(中间语言,源数据,资源,装配清单)

 

60.常用的调用WebService的计有哪些?

报经:1.动WSDL.exe命令行工具。

    2.下VS.NET中之Add Web
Reference菜单选取项

 

61. .net Remoting
的行事规律是什么?

答:服务器端向客户端发送一个历程编号,一个程序域编号,以确定目标的职务。

 

62.因线程安全之连带文化,分析以下代码,当调用test方法时i>10时是不是会惹死锁?并略说明理由。

public void test(int i)

{

  lock(this)

  {

    if (i>10)

    {

      i–;

      test(i);

    }

  }

}

报经:不见面来死锁,(但有好几int是按照值传递的,所以每次变更之且仅仅是一个副本,因此不见面并发死锁。但如若将int换做一个object,那么死锁会发生)

 

63.简如讲话你对微软.NET
构架下remoting和webservice两项技术的掌握与实际中之以。

报:WS主要是不过采用HTTP,穿透防火墙。而Remoting可以以TCP/IP,二进制传送提高效率。

  remoting是.net中因故来过machine,process,
appdomain进行艺术调用的技巧,对于三变成结构的顺序,就可利用remoting技术来构建.它是分布应用之基本功技术.相当给以前的DCOM。

  Web
Service是平等种植构建应用程序的屡见不鲜模型,并能在装有支持internet网报道的操作系统及推行。Web
Service令基于组件的付出及web的重组上最佳,基于组件的靶子模型。

 

64.店家要求开一个继往开来System.Windows.Forms.ListView类的零部件,要求达到以下的突出效果:点击ListView各列列头时,能以点击列的各级行值进行重排视图中的富有行
(排序的法子如DataGrid相似)。根据你的学问,请简要谈一下若的思路

报经:根据点击的列头,包该列的ID取出,按照该ID排序后,在受绑定到ListView中。

 

65.于一定以下XML文件,完成算法流程图。

<FileSystem>

  < DriverC >

    <Dir DirName=”MSDOS622”>

      <File FileName =”
Command.com”></File>

    </Dir>

    <File FileName =”MSDOS.SYS”
></File>

    <File FileName =”
IO.SYS”></File>

  </DriverC>

</FileSystem>

请求画起遍历所有文件称(FileName)的流程图(请用递归算法)。

答:voidFindFile( Directory d )

   {

    FileOrFolders =
d.GetFileOrFolders();

    foreach( FileOrFolder fof in
FileOrFolders)

    {

      if(fof  is  File)

        You Found a file;

      else if (fof is Directory)

        FindFile( fof );

    }

  }

 

66.String s = new
String(“xyz”);创建了几乎单String Object?

答:两独对象,一个是“xyx”,一个是凭为“xyx”的援对像s。

 

67.abstract
class暨interface有啊分别?

答:声明方法的有如非失去落实它的类似让名抽像类(abstract
class),它用于要创造一个体现某些基本表现之好像,并也此类声明方法,但不能够于此类中贯彻该类的景况。不可知缔造abstract
类的实例。然而可以创造一个变量,其色是一个抽像类,并吃它对具体子类的一个实例。不能够发生抽像构造函数或抽像静态方法。Abstract
类的子类为它们父类中之拥有抽像方法提供实现,否则它们啊是抽像类为。取而代之,在子类中贯彻该方法。知道其一言一行之其它类可以接近吃实现这些方式。

  接口(interface)是抽像类的变体。在接口中,所有术还是抽像的。多继承性可经过兑现这样的接口而博。接口中之所有术都是抽像的,没有一个有程序体。接口就堪定义static
final成员变量。接口的贯彻与子类相似,除了该实现类不能够打接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它好以促成了拖欠接口的接近的其余针对像及调用接口的点子。由于来抽像类,它同意使用接口名作为援变量的类别。通常的动态联编将生效。引用得换到接口类型或由接口类型转换,instanceof
运算符可以为此来控制有目标的类似是否实现了接口。

 

68.开行一个线程是故run()还是start()?

报经:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这象征它们可由JVM调度并实行。这并无意味线程就会见立马运行。

  run()方法可起必须剥离的表明来终止一个线程。

 

69.点滴只针对诸如值相同(x.equals(y)==
true),但可可产生不同的hashcode,这句话对怪?

报:不对,有同一的hashcode。

 

70.swtich是否会图在byte上,是否能够图在long上,是否能图在String上?

报:switch(expr1)中,expr1凡一个整型,字符或字符串,因此得以作用在byte和long上,也可以作用在string上。

 

71.当一个线程进入一个靶的一个synchronized方法后,其它线程是否只是进是目标的其他方式?

报:不能够,一个对象的一个synchronized方法才会由一个线程访问。

 

72.abstract的method是否可又是static,是否只是同时是native,是否可又是synchronized?

答:都不能。

 

73.List, Set,
Map是否继续自Collection接口?

答:List,Set是Map不是

 

74.Set里之要素是休能够重新的,那么因此什么方式来分重复与否呢?
是为此==还是equals()? 它们发出哪里区别?

报经:Set里之素是勿能够再次的,那么因此iterator()方法来区别重复与否。equals()是判读两独Set是否等于。

  equals()和==方法决定引用值是否针对同一对诸如equals()在看似吃给蒙,为底是当半个分别的对象的内容与类相配的言语,返回真值。

 

75.sleep() 和 wait()
有啊区别?

答:sleep()方法是用手上线程挂于指定的时。

  wait()释放对象及之锁并阻塞时线程,直到其再取得该锁。

 

76.short s1 = 1; s1 = s1 +
1;有啊错? short s1 = 1; s1 += 1;有什么错?

答:short s1 =1; s1 = s1 +
1;有错,

  s1是short型,s1+1是int型,不能够显式转化为short型。可改为s1=(short)(s1

  • 1) 。short s1 = 1;s1 += 1正确。

 

77.谈谈final,finally,
finalize的区别。

报:final-修饰符(关键字)如果一个看似为声称也final,意味着它们不可知重派生出新的子类,不能够当做父类被延续。因此一个近乎非可知既为声称也
abstract的,又给声称也final的。将变量或方法声明也final,可以保证她于以被
不受改变。被声称也final的变量必须于声明时被一定新值,而于其后的援中不得不读取,不可修改。被声称也
final的措施呢一律只能动用,不能够重载

  finally-再挺处理常供 finally
块来实行外清除操作。如果遗弃来一个深,那么相兼容的 catch
子句就见面实行,然后决定就见面跻身 finally 块(如果局部言语)。

  finalize-方法名。Java
技术允许下finalize()
方法以垃圾收集器将对准如于内存中清除出之前做必要之清理工作。这个主意是由垃圾收集器在确定这目标没于引述时对这个目标调用的。它是以
Object 类中定义之 ,因此具有的类都继承了她。子类覆盖 finalize()
方法以整治系统资源或者执行另外清理工作。finalize()
方法是以垃圾堆收集器删除对诸如之前对这目标调用的。

 

78.如何处理几十万久出现数据?

答:用存储过程要业务。取得最要命标识的时刻以创新。注意主键不是打增量方式这种方式并发的当儿是休见面有再次主键的。取得最特别标识要来一个仓储过程来抱取.

 

79.Session有什么要BUG,微软提出了哟措施加以解决?

报经:是iis中由于来过程回收机制,系统繁忙的话Session会掉,可以用Sate
server或SQL
Server数据库的艺术囤Session不过这种措施比较慢,而且无法捕获Session的END事件。

 

80.分子变量和成员函数前加static的图?

报:它们为名常成员变量和常常成员函数,又叫做类成员变量和接近成员函数。分别就此来反映类似的状态。比如类似成员变量可以用来统计类实例的多少,类成员函数负责这种统计的动作。

 

81.请说明在.net中常用的几种页面中传递参数的方式,并说发生她们之优缺点。

答:session(viewstate)简单,但易丢

  application 全局

  cookie
简单,但可能不支持,可能于冒用

  input type=”hidden”
简单,可能给仿冒

  url参数简单,显示为地址栏,长度有限

  数据库稳定,安全,但性能相对弱

 

82.请指出GAC的含义?

报:全局程序集缓存。

 

83.朝服务器发送请求有几乎栽艺术?

报:get,post。get一般为链接方式,post一般也按钮方式。

 

84.软件开发过程相似发生几乎个阶段?每个阶段的用意?

报经:需求分析,架构设计,代码编写,QA,部署

 

85.在c#中using和new这片单关键字有什么意思,请写有您所知道的意思?using
指令 和说话 new 创建实例 new 隐藏基类中艺术。

答:using
引入名称空间要以非托管资源

  new 新建实例或者藏父类方法

 

86.用贯彻对一个字符串的拍卖,首先用该字符串首尾的空格去丢,如果字符串中间还有连续空格的话,仅保留一个空格,即许字符串中间有多独空格,但连的空格数不可超越一个.

答:string inputStr=” xx xx “;

  inputStr =
Regex.Replace(inputStr.Trim(),”*”,” “);

 

87.什么叫SQL注入,如何防范?请举例说明。

答:利用sql语言漏洞获得官方地位登陆系统。如身份验证的次序设计成为:

  SqlCommand com=new
SqlCommand(“Select* from users where username='”+t_name.text+”‘
andpwd='”+t_pwd.text+”‘”);

  object
obj=com.ExcuteScale();

  if(obj!=null)

    {

      //通过验证

    }

  这段代码容易受sql注入。如用户在t_name中无输入,在t_pwd中输入1′
and 1=’1  就好进去系统了。

 

88.什么凡反射?

报经:动态获取程序集信息

 

89.为此Singleton如何勾勒设计模式

答:static属性里面new
,构造函数private

 

90.什么是ApplicationPool?

报经:Web应用,类似Thread
Pool,提高并发性能。

 

91.哟是虚函数?什么是抽像函数?

报:虚函数:可由于子类继承并重写的函数。

  抽像函数:规定其非虚子类必须实现之函数,必须于重写。

 

92.什么是XML?

报经:XML即可扩展标记语言。eXtensible
Markup
Language.标记是因计算机所能够明白的信符号,通过者种标志,计算机中可以拍卖包含各种消息的章等。如何定义这些标记,即可以选择国际通用的标记语言,比如HTML,也堪运用象XML这样由相关人士任意支配的符语言,这就算是语言的而是扩展性。XML是自从SGML中简化修改出来的。它要使用的生XML、XSL和XPath等。

 

94.哟是ASP.net中之用户控件?

答:用户控件一般用在内容基本上吧静态,或者少会转之图景下.用的比大.类似ASP中的include.但是作用一旦强有力的大半。

 

95.列举一下你所了解之XML技术及其使用

报:xml用于配置,用于保存静态数据类型.接触XML最多的凡web
Services和config

 

96.什么是code-Behind技术。

报:aspx,resx和cs三只后缀的文书,这个就是是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.

 

97.C#中 property 与
attribute的界别,他们每出什么用处,这种体制的利在乌?

报经:一个凡是性,用于存取类的字段,一个凡特点,用来标识类,方法齐之增大属性

 

98.XML 与 HTML 的第一分

答:1.
XML是别好小写字母的,HTML不分。

  2.
在HTML中,如果达到下文清楚地亮出段落或者列表键在何方结尾,那么你可概括</p>或者</li>之类的结
标记。在XML中,绝对免可知省略掉了标记。

  3.
每当XML中,拥有单个标记而没有匹配的终止标记的因素必须用一个 /
字符作为最后。这样分析器就亮不要摸了标记了。

  4.
每当XML中,属性值必须分开作于引号中。在HTML中,引号是可用可不用的。

  5.
在HTML中,可以享有不带值的属性名。在XML中,所有的特性都得包含相应的价值。

 

99.类成员产生_____栽而看形式?

答:this.; newClass().Method;

 

100.在Asp.net中拥有的自定义用户控件都要继承自________?

答:Control。

 

101.以.Net中具有可序列化的类都让记为_____?

答:[serializable]

 

102.于.Net托管代码中我们决不顾虑内存漏洞,这是盖发矣______?

答:GC。

 

103.在.Net中,类System.Web.UI.Page
可以于随后承么?

答:可以。

 

104..net底错误处理机制是什么?

报经:.net错误处理机制下try->catch->finally结构,发生误时,层层上摒弃,直到找到匹配的Catch为止。

 

105.采用operator声明且仅宣称了==,有什么错误么?

报:要以修改Equale和GetHash() ?
重载了”==” 就非得重载 “!=”

 

106.某平密码才使用K、L、M、N、O共5单字母,密码中之单词从错误望右侧排列,密码单词必须遵如下规则:

(1)
密码单词的极度小尺寸是少数只假名,可以一样,也足以不同

(2) K不容许是一味词的第一只假名

(3)
如果L出现,则出现次数不止一次

(4)
M不可知如末段一个也非能够是倒数第二独字母

(5) K出现,则N就势必出现

(6)
O如果是最终一个字母,则L一定出现

 

题目同样:下列哪一个假名可以放在LO中之O后面,形成一个3独字母的密码单词?

A) K B)L C) M D) N

答案:B

 

问题二:如果能够得到的假名是K、L、M,那么能形成的有限个字母长的密码单词的总数是略?

A)1个 B)3个 C)6个 D)9个

答案:A

 

题目三:下列哪一个是单词密码?

A) KLLN B) LOML C) MLLO
D)NMKO

答案:C

 

107.C#中 property 与
attribute的别,他们各发啊用处,这种机制的裨益在何?

答:attribute:自定义属性的基类;property
:类吃之属性

 

108.C#能否对内存进行直接的操作?

报:在.net下,.net引用了垃圾回收(GC)功能,它替了程序员不过在C#惨遭,不克一直促成Finalize方法,而是以析构函数吃调用基类的Finalize()方法

 

109.ADO.NET相对于ADO等关键出什么改进?

报:1:ado.net不借助于ole
db提供程序,而是使用.net托管提供的程序,

  2:不使用com

  3:不在支撑动态游标和服务器端游

  4:,可以断开connection而保留当前数据集可用

  5:强类型转换

  6:xml支持

 

110.约讲述一下ASP.NET服务器控件的生命周期

答:初始化 加载视图状态处理回发数据
加载 发送回发更改通知 处理回发事件 预呈现 保存状态 呈现 处置 卸载

 

111.Anonymous Inner Class
(匿名内部类)
是否可以extends(继承)其它类,是否足以implements(实现)interface(接口)?

报经:不能够,可以兑现接口

 

112.Static Nested Class 及 Inner
Class的差,说得越多越好

答:StaticNested
Class是吃声称也静态(static)的里边类,它可不依赖让外部类实例被实例化。而平凡的内类需要以表类实例化后才能够实例化。

 

113.&和&&的区别

答:&是各项运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).

 

114.<%# %> 和 <% %>
有啊界别?

答:<%#
%>表示绑定的数据源,<% %>是服务器端代码块

 

115.君当ASP.NET
2.0(VS2005)和公以前使用的开发工具(.Net
1.0或者其他)有啊最酷的分别?你当以前的平台达成采用的哪些开发考虑(pattern/
architecture)可以移植到ASP.NET2.0达到 (或者曾经内嵌在ASP.NET
2.0蒙)

答:1、ASP.NET2.0拿部分代码进行了包打包,所以相比1.0同等功能减少了诸多代码。

  2、同时支持代码分离和页面嵌入服务器端代码两栽模式,以前1.0本子,.NET提示救助只有当分手之代码文件,无
法 在页面嵌入服务器端代码获得赞助提示。

  3、代码和规划界面切换的时节,2.0支撑光标定位.这个自己比欣赏。

  4、在绑定数据,做表的分页.UPDATE,DELETE,等操作都得以可视化操作,方便了初学者。

  5、在ASP.NET中长了40差不多独新的控件,减少了工作量。

 

116.重载暨覆盖的区分?

报经:1、方法的遮盖是子类和父类之间的涉,是笔直关系;方法的重载是和一个好像中法中的涉及,是水平关系。

  2、覆盖只能由一个措施,或只能出于局部艺术有关系;方法的重载是大半个法子之间的涉及。

  3、覆盖要求参数列表相同;重载要求参数列表不与。

  4、覆盖关系受到,调用那个方法体,是基于目标的品类(对像对应存储空间类型)来决定;重载关系,是根据调用时的实参表与展示参表来选择方法体的。

 

117.哟是WSE?目前最新的版是有些?

答:WSE (WebService
Extension)包来提供最新的WEB服务安全确保,最新版本2.0。

 

118.a=10,b=15,在毫不第三正值变量的前提下,把a,b的值互换

答:a=a+b;b=a-b;a=a-b;

 

119.还有变态要求,需要代码最缺乏为。有少数只结实:

1) a^=b^(b^=a^b); // 13个字节

2) a=b+(b=a)*0; // 11个字节

 

120.伸手简述面向对象的多态的风味以及意义!

报:面向对象的编程使用了派生继承和虚函数机制.一个本来对基类的靶子指针可以指向其派生类的.并访问于基类继承而来之分子变量和函数.而虚函数是专程为是特点设计之,这个函数在每个基类的派生类吃还是同一个名,但函数体却并不一定相同,派生类往往也落实团结的成效而改者虚函数.这么用一个指针就会实现对多种不同的派生类的造访,
并实现其派生类的特定功能(代码 )

 

121.session欣赏丢值都占用内存,Cookis不安全,请问用什么艺术代替这片栽原始之艺术

答:用ViewState,stateserver

 

122.对数码的产出采用什么办法开展处理比较好。

答:可以控制连接池的连日数量,条件好的语句可以就此负载平衡

 

123.ADO.NET拍卖数量出现的主意和步子?

报:开放式并发,没有因此到数据库的锁,而借助于SQL语句判断数是否已变更了。

   
步骤:通常采用VS提供的家伙生成SQL语句,工具转的结果其实不符合要求,才手工写SQL语句。

 

124.动态创建的控件PostBack后是否可保留下去,为什么?

报经:ASP.NET框架不会见也你保存,但可以手工保存至ViewState

 

125.T-SQL中is null和null 的区别?

报经:is null 和 null 区别相当给
“是拖欠盒子” 和 “空盒子”的区分

 

–非技巧问题

1、对而来说工作屡遭最为根本之是啊? 

报经:团队目标的兑现。(这是兼备商店愿意员工拥有的素质)

2、为什么愿意为依照公司工作? 

 答:因为自觉得自可以跟贵公司取得共同的前进。(暗示留下我可能啊合作社带来的利益)

3、你道企业为何而延你? 

报经:因为自身以为自身的能力跟脾气完全吻合贵公司之这职务。

4、如果我们聘请你,你见面需要多久? 

报:我说了了,我思念与贵公司一起发展,当然我深信不疑这种进步是只是不断的,我弗愿意失去这发展机会。(考虑忠诚度问题,这样对比较深刻,乱作誓在旁观者面前是全没有因此之)

 5、在你看来,我们会否汝的职业生涯规划一个哪些的环境? 

答:我生一个较遥远的职业生涯规划目标,但不论是近日目标还是中长期目标,贵公司的条件正与我之计划相适合,我深信不疑必将能以贵公司之扶植下实现团结的计划。(看您的筹划,如果掌握信用社的组成部分具体情况,也不过顺便拍拍马屁,但非可知过头)

6、你的优点是啊? 

报经:优点是不希罕多说,喜欢多开。(每个老板都喜爱的朴实而无是夸夸其谈的职工) 

7、什么是你最好深的败笔?友情提示:不妨借自我批评来自自身表扬。 

答1:我之欠缺是心比脆弱,总是不擅于推辞别人的渴求。(体现你的乐于助人)

答2:我过去不绝厚与丁的关联,觉得假如技术好就是足以了,但就年华的增高跟沾更多之人头,我当与丁关系吗老重要,我今天恰恰忙乎地锻炼提高协调的联系能力

8、你的业余时间(爱好)喜欢开呀? 

报:我经常会面失去打篮球,喜欢户外运动,听音乐与看录像

9、你针对薪水之梦想是有些? 

报经:望得根据贵公司的状况和地方软件业行情还有本人的力量给有一个客观之薪饷。

10、如果……的话,你怎么处置? 

报经:如果以自家之裨益呵公司之补益中选择,我会毫不犹豫选择企业。

11、你针对我们店来什么想法?

交提示:这可是反映你针对店前景的关心,切忌回答:“都坏好,没什么想法。”,参考报:“贵公司XX地方开的那个好,但XX地方用提高”, 不宜多说。

 

–其它

储存过程与用户定义函数都是“SQL语句组成的子程序,用以封装代码以便重复使用”。但别为是显然的。简单说,存储过程功能强大,但调用不便,用户函数正相反。

用户定义函数的优点:

可于SQL语句被调用,直接下返值,从而形成复杂的SQL应用。

积存过程尽管不得不用execute命令调用,用输出参数的到回的结果。

用户定义函数的缺陷:

能够于函数中应用的晓句子有严格限:

不支持create、drop等DDL命令

insert、delete、update只能用当临时表上

不支持动态SQL

匪支持“不确定”的函数,比如常用之getdate。不确定函数是赖输入参数相同,返回结果可能两样之函数。全部无确定函数如下表

@@CONNECTIONS @@TOTAL_ERRORS

 

变通办法:

倘若缓解用户函数的种限制,可以巧妙利用用户函数调用存储过程。

以,需要在函数中之所以getdate,就写个存储过程返回getdate的结果。然后起函数里去调用这个蕴藏过程。需要在函数中使用update等,也可是类推。

‘————————————–

缺点:

1、可移植性是储存过程以及触发器最老之先天不足。

2、占用服务器端太多之资源,对服务器造成很老的压力

3、不能做DDL。

4、触发器排错困难,而且数量易招不同等,后期维护不便民。

优点:

1、预编译,已优化,效率比高。避免了SQL语句以网络传输然后再解释的不比效率。

2、存储过程可重复使用,减少开发人员的工作量。

3、业务逻辑封装性好,修改好。

4、安全。不会见发SQL语句注入问题存在。

 

 

分类:
求职–常见面试题