《2022年软件开发企业面试题目大全 .pdf》由会员分享,可在线阅读,更多相关《2022年软件开发企业面试题目大全 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件开发企业面试题目大全(含答案)1.new 关键字用法答:(1)new 运算符用于创建对象和调用构造函数。(2)new 修饰符用于向基类成员隐藏继承成员。(3)new 约束用于在泛型声明中约束可能用作类型参数的参数的类型。2.如何把一个Array 复制到 ArrayList 里答:foreach(objectoinarray)arrayList.Add(o); 3.DataGrid 的 Datasouse 可以连接什么数据源答: DataTable,DataView,DataSet,DataViewManager ,任何实现IListSource接口的组件,任何实现IList 接口的组件4.
2、概述反射和序列化答:反射公共语言运行库加载器管理应用程序域。这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。 您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。序列化名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 序列化是将
3、对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。5.概述 O/RMapping 的原理答:利用反射,配置将对象和数据库表映射。6.可访问性级别有哪几种答:public 访问不受限制。protected 访问仅限于包含类或从包含类派生的类型。internal 访问仅限于当前程序集。protectedinternal访问仅限于从包含类派生的当前程序集或类型。private 访问仅限于包含类型。7.sealed 修饰符有什么特点答:sealed 修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中
4、的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed 修饰符必须始终与override 一起使用。8.列举 ADO.NET中的共享类和数据库特定类答:共享类DataSet DataTable DataRow DataColumn DataRelation 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - Constraint DataColumnMapping DataTableMapping 特定类(
5、x)Connection (x)Command (x)CommandBuilder (x)DataAdapter (x)DataReader (x)Parameter (x)Transaction 9.执行下面代码后:StringstrTemp=abcdefg 某某某 ;Inti=System.Text.Encoding.Default.GetBytes(strTemp).Length; Intj=strTemp.Length; 问:i=? j=? 答: i=(14);j=(11)中文两个字节10.C#中, stringstr=null 与 stringstr= ,请尽量用文字说明区别。答:s
6、tringstr= 初始化对象分配空间名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 而 stringstr=null 初始化对象,没有分配空间。11.详述 .NET里 class和 struct 的异同答:结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。结构不能声明默认构造函数(没有参数的构造函数)或析构函数。结构的副本由编译器自动创建和销毁,因
7、此不需要使用默认构造函数和析构函数。实际上,编译器通过为所有字段赋予默认值(参见默认值表)来实现默认构造函数。结构不能从类或其他结构继承。结构是值类型-如果从结构创建一个对象并将该对象赋给某个变量,变量则包含结构的全部值。 复制包含结构的变量时,将复制所有数据,对新副本所做的任何修改都不会改变旧副本的数据。由于结构不使用引用,因此结构没有标识-具有相同数据的两个值类型实例是无法区分的。 C#中的所有值类型本质上都继承自ValueType,后者继承自Object。编译器可以在一个称为装箱的过程中将值类型转换为引用类型。结构具有以下特点:结构是值类型,而类是引用类型。向方法传递结构时,结构是通过传
8、值方式传递的,而不是作为引用传递的。与类不同,结构的实例化可以不使用new 运算符。l 结构可以声明构造函数,但它们必须带参数。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType ,后者继承自System.Object。结构可以实现接口。在结构中初始化实例字段是错误的。12.什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载? CTS 、CLS和 CLR分别作何解释?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
9、 - - - - 第 4 页,共 9 页 - - - - - - - - - 答:应用程序域应用程序域为安全性、可靠性、 版本控制以及卸载程序集提供了隔离边界。应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前引导公共语言运行库。应用程序域提供了一个更安全、用途更广的处理单元,公共语言运行库可使用该单元提供应用程序之间的隔离。托管代码使用基于公共语言运行库的语言编译器开发的代码称为托管代码;托管代码具有许多优点,例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。装箱和拆箱装箱和拆箱使值类型能够被视为对象。对值类型装箱将把该值
10、类型打包到Object 引用类型的一个实例中。这使得值类型可以存储于垃圾回收堆中。拆箱将从对象中提取值类型。重载每个类型成员都有一个唯一的签名。方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。只要签名不同,就可以在一种类型内定义具有相同名称的多种方法。当定义两种或多种具有相同名称的方法时,就称作重载。CTS通用类型系统 (commontypesystem) 一种确定公共语言运行库如何定义、使用和管理类型的规范。CLR公共语言运行库.NETFramework 提供了一个称为公共语言运行库的运行时环境,它运行代码并提供使开发过程更轻松的服务。CLS公共语言规范要和其他对象完全交互,
11、而不管这些对象是以何种语言实现的,对象必须只向调用方公开那些它们必须与之互用的所有语言的通用功能。为此定义了公共语言规范(CLS) ,它是许多应用程序所需的一套基本语言功能。强类型C#是强类型语言;因此每个变量和对象都必须具有声明类型。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 13.值类型和引用类型的区别?答:基于值类型的变量直接包含值。将一个值类型变量赋给另一个值类型变量时,将复制包含的值。 这与引用类型变量的赋值不同,
12、引用类型变量的赋值只复制对对象的引用,而不复制对象本身。所有的值类型均隐式派生自System.ValueType 。与引用类型不同,从值类型不可能派生出新的类型。但与引用类型相同的是,结构也可以实现接口。与引用类型不同,值类型不可能包含null 值。然而, 可空类型功能允许将null 赋给值类型。每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。值类型主要由两类组成:结构、枚举结构分为以下几类:Numeric (数值)类型、整型、浮点型、decimal、bool、用户定义的结构。引用类型的变量又称为对象,可存储对实际数据的引用。声明引用类型的关键字:class、interface、
13、delegate、内置引用类型:object、string 14.如何理解委托答:委托类似于C+ 函数指针,但它是类型安全的。委托允许将方法作为参数进行传递。委托可用于定义回调方法。委托可以链接在一起;例如,可以对一个事件调用多个方法。方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。C#2.0版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - -
14、- 15.C#中的接口和类有什么异同。答:异:不能直接实例化接口。接口不包含方法的实现。接口、类和结构可从多个接口继承。但是C#只支持单继承:类只能从一个基类继承实现。类定义可在不同的源文件之间进行拆分。同:接口、类和结构可从多个接口继承。接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。接口可以包含事件、索引器、方法和属性。一个类可以实现多个接口。16.ASP .net 的身份验证方式有哪些答:Windows 身份验证提供程序提供有关如何将Windows 身份验证与MicrosoftInternet信息服务 (IIS)身份验证结合使用来确保 ASP .NET应用程序安全的
15、信息。Forms 身份验证提供程序提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息。使用 Forms 身份验证的一种简便方法是使用ASP .NET成员资格和ASP .NET登录控件,它们一起提供了一种只需少量或无需代码就可以收集、验证和管理用户凭据的方法。Passport 身份验证提供程序提供有关由Microsoft 提供的集中身份验证服务的信息,该服务为成员站点提供单一登录和核心配置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - -
16、 - - - - - - - 17.活动目录的作用答:ActiveDirectory 存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。 ActiveDirectory 使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。18.解释一下UDDI、WSDL的意义及其作用答:UDDI 统一描述、发现和集成协议(UDDI,UniversalDescription,DiscoveryandIntegration) 是一套基于 Web 的、分布式的、为Web 服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web 服务注册以使得
17、别的企业能够发现的访问协议的实现标准。UDDI 提供了一组基于标准的规范用于描述和发现服务,还提供了一组基于因特网的实现。WSDL WSDL描述 Web 服务的公共接口。这是一个基于XML 的关于如何与Web 服务通讯和使用的服务描述;服务 URL和命名空间网络服务的类型(可能还包括SOAP的函数调用,正像我所说过的,WSDL足够自如地去描述网络服务的广泛内容)有效函数列表每个函数的参数每个参数的类型每个函数的返回值及其数据类型19.什么是 SOAP 答:SOAP (SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,
18、是一个基于XML 的协议。使用SOAP ,不用考虑任何特定名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 的传输协议 (最常用的还是HTTP协议) ,可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。SOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。SOAP 利用XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。这种框架的设计思想是要独立于任何一种特
19、定的编程模型和其他特定实现的语义。SOAP定义了一种方法以便将XML 消息从A 点传送到B 点。为此,它提供了一种基于XML 且具有以下特性的消息处理框架:1)可扩展, 2)可通过多种底层网络协议使用,3)独立于编程模型。20.如何部署一个ASP .net 页面答:VS2005和 VS2003都有发布机制。2003 可以发布然后再复制部署。VS2005基本上可以直接部署到对应位置。21.如何理解 .net 中的垃圾回收机制答:.NETFramework 的垃圾回收器管理应用程序的内存分配和释放。每次您使用new 运算符创建对象时, 运行库都从托管堆为该对象分配内存。只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间。但是,内存不是无限大的。最终,垃圾回收器必须执行回收以释放一些内存。 垃圾回收器优化引擎根据正在进行的分配情况确定执行回收的最佳时间。当垃圾回收器执行回收时,它检查托管堆中不再被应用程序使用的对象并执行必要的操作来回收它们占用的内存。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -
限制150内