[转]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