2023年软件开发企业面试题目大全含答案

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