[转]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语句注入问题有。

 

 

分类:
求职–常见面试题

相关文章