`
volunteer521
  • 浏览: 205389 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【转】.NET企业面试题

    博客分类:
  • .Net
阅读更多

源自:http://tech.e800.com.cn/articles/2010/42/1270186659627_1.html


      很多时候,在看这些面试题的时候,是否有感过曾经那些一个个不起眼的小程序题所针对的问题正是自己在项目中所犯的错误?是否会发现,原来还有这么多东西自己都还从未去想过?趁自己这次重新找工作之际,对常见面试题进行进行一次重新整理,与大家共同学习!本贴将会进行不断完善和继续更新,有些答案可能并不完全正确,希望能得到大家的指正。 

      接下来还将整理出:数据库篇、算法篇、设计模式篇 

   1、什么是面向对象 

      面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 
      通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数; 
      现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的。 

   2、简述 private、 protected、 public、 internal 修饰符的访问权限。 

      private : 私有成员, 在类的内部才可以访问。 
      protected : 保护成员,该类内部和继承类中可以访问。 
      public : 公共成员,完全公开,没有访问限制。 
      internal: 当前程序集内可以访问。 

   3、ADO.NET中的五个主要对象 

      Connection:主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在ADO.NET 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。 
    
      Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源。 

      DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Command 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command对象上,并提供了许多配合DataSet 使用的功能。 

      DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是ADO.NET 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。 

      DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。

 

      ADO.NET 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来执行SQL语句,并将执行的结果返回给DataReader 或 DataAdapter ,然后再使用取得的DataReader 或DataAdapter 对象操作数据结果。 

   4、列举ASP.NET 页面之间传递值的几种方式。 

      1)使用QueryString, 如....?id=1; response. Redirect().... 
      2)使用Session变量 
      3)使用Server.Transfer 
      4)Cookie传值 
      5)Application传值 

   5、C#中的委托是什么?事件是不是一种委托? 

      委托可以把一个方法作为参数代入另一个方法。 
      委托可以理解为指向一个函数的引用。 
      是,是一种特殊的委托。 


   6、Override与重载的区别 

      重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 
      Override 是进行基类中函数的重写。为了适应需要。 

   7、描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 

      不是。可以用任意类型。 

   8、三层架构 

      通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。 
      区分层次的目的即为了“高内聚,低耦合”的思想。 

      表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得。 

      业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 

      数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等每层之间是一种垂直的关系。 

      三层结构是N层结构的一种,一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。 
      

      优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 
      缺点: 增加成本。 

   9、MVC模式 

      MVC(Model View Controller)模型-视图-控制器 
      MVC是典型的平行关系,没有说谁在上谁在下的关系,模型负责业务领域的事情,视图负责显示的事情,控制器把数据读取出来填充模型后把模型交给视图去处理。而各种验证什么的应该是在模型里处理了。它强制性的使应用程序的输入、处理和输出分开。MVC最大的好处是将逻辑和页面分离。 

   10、什么是装箱和拆箱? 

      装箱:从值类型接口转换到引用类型。 
      拆箱:从引用类型转换到值类型。 

   11、什么叫应用程序域? 

      一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)。 
      应用程序域有助于将在一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。 
      在一个单独的进程中可以存在多个应用程序域。应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。 

   12、CTS、CLS、CLR分别作何解释? 

      CTS:Common Type System 通用系统类型。 
      CLS:Common Language Specification 通用语言规范。 
      CLR:Common Language Runtime 公共语言运行库。 

   13、在dotnet中类(class)与结构(struct)的异同? 

      Class可以被实例化,属于引用类型,是分配在内存的堆上的 
      Struct属于值类型,是分配在内存的栈上的 

   14、堆和栈的区别? 

      栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义; 
      堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。 

   15、能用foreach遍历访问的对象有何要求? 

      需要实现IEnumerable接口或声明GetEnumerator方法的类型。 

   16、GC是什么?为什么要有GC ? 

      GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。 
      要请求垃圾收集,可以调用下面的方法之一: 
      System.gc()  Runtime.getRuntime().gc() 

   17、String s = new String("xyz");创建了几个String Object ? 

      两个对象,一个是“xyx”,一个是指向“xyx”的引用对象。 

   18、值类型和引用类型的区别? 

      1)赋值方式不同: 
      基于值类型的变量直接包含值。将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。 

      2)值类型不可能派生出新的类型: 
      所有的值类型均隐式派生自 System.ValueType。但与引用类型相同的是,结构也可以实现接口。 

      3)值类型不可能包含 null 值: 
      然而,可空类型功能允许将 null 赋给值类型。 
    
      4)每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。 

   19、C#中的接口和类有什么异同? 

      不同点: 
      1)不能直接实例化接口。 
      2)接口不包含方法的实现。 
      3)接口可以多继承,类只能单继承。 
      4)类定义可在不同的源文件之间进行拆分。 

      相同点: 
      1)接口、类和结构都可以从多个接口继承。 
      2)接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。 
      3)接口和类都可以包含事件、索引器、方法和属性。 

   20、abstract class和interface有什么区别? 

      相同点: 
      1)都不能被直接实例化,都可以通过继承实现其抽象方法。 
      2)都是面向抽象编程的技术基础,实现了诸多的设计模式。 
    
      不同点: 
      1)接口支持多继承;

            抽象类不能实现多继承。

 
      2)接口只能定义抽象规则;

            抽象类既可以定义规则,还可能提供已实现的成员。 


      3)接口是一组行为规范;

            抽象类是一个不完全的类,着重族的概念。

 
      4)接口可以用于支持回调(CallBack);

            抽象类不能实现回调,因为继承不支持。 


      5)接口只包含方法(Method)、属性(Property)、索引器(Index)、事件(Event)的签名,但不能定义字段和包含实现的方法;

            抽象类可以定义字段、属性、包含有实现的方法。  


      6)接口可以作用于值类型(Struct)和引用类型(Class);

            抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。

 

分享到:
评论

相关推荐

    .net程序员面试题

    收集了很多师兄师姐出去就业后,收集回来的企业面试.net程序员的面试题啊!不容易啊!1-8份面试题,好好看啊!都是技术题,祝面试上自己喜欢的职业

    企业真实.Net_面试题大全(有答案)

    从给定的文件信息中,我们可以总结和拓展出一系列与.NET框架、面向对象编程、以及ASP.NET相关的专业知识点。以下是对这些知识点的详细解析: ### 面向对象的三大特性 面向对象语言如.NET中的C#具备三个核心特性:*...

    IT企业必读的200个.NET面试题

    本书几乎包揽了所有常见的面试题,从基础知识、数据库,再到比较流行的XML、测试方法和算法,是目前市场上最新、最全的一本面试试题集锦。全书配合了大量的图例及代码说明,非常适合正打算参加.NET技术职 位的应聘和...

    企业面试.NET的面试题汇总及智力题

    .NET框架是微软开发的一种应用程序框架,它为开发者提供了在Windows平台上构建...通过深入学习和理解这些面试题,候选人不仅可以提升.NET相关技能,还能更好地应对企业的面试挑战,从而在竞争激烈的IT行业中脱颖而出。

    C# .NET 笔试面试题集合

    《C# .NET 笔试面试题集合》 在IT领域,C#和.NET框架是开发者广泛应用的技术栈,尤其在企业级应用开发中占据重要地位。对于应届生和有经验的开发者而言,掌握C# .NET的核心知识是求职过程中不可或缺的一部分。本...

    Java、.NET面试题(技术笔试题)各多套含答案word版

    这份压缩包包含的“Java、.NET面试题(技术笔试题)各多套含答案word版”为求职者提供了宝贵的资源,帮助他们准备面试,提升就业竞争力。 对于Java面试题部分,通常会涵盖以下几个关键知识点: 1. **基础语法**:...

    java和.NET企业面试题

    在Java和.NET企业面试中,面试官通常会考察候选人的基础知识、编程技能和问题解决能力。以下是一些常见的面试知识点: 1. 关键字final、finally和finalize的区别: - `final`:用于修饰类、变量和方法,表示不可...

    C#与.NET程序员面试宝典

    《C#与.NET程序员面试宝典》取材于各大IT公司的历年面试题252个(包括研发类笔试及口试题目、情商及智商类题目),详细分析了应聘C#与.NET程序员职位的常见考点。《C#与.NET程序员面试宝典》主要内容包括:面试流程...

    c# _ASP.NET面试题大全

    对于ASP.NET,面试题可能涵盖以下方面: 1. **生命周期**:理解页面、控件和应用程序的生命周期,以及各阶段的主要活动。 2. **MVC模式**:解释Model-View-Controller架构,以及各部分的作用。 3. **Web Forms和MVC...

    .net面试机试题集锦

    .NET框架是微软开发的一种软件开发平台,广泛应用于构建企业级Web应用程序和服务。本文将深入探讨.NET面试中的关键知识点,帮助求职者准备.NET相关的面试。 1. **C#基础** - 类与对象:理解面向对象编程的基本概念...

    经典的.NET 面试题

    对于寻找.NET相关工作的求职者来说,理解和掌握.NET面试题中的知识点至关重要。以下是一些可能出现的面试问题及其相关知识: 1. **基础概念** - .NET Framework:它是微软提供的一套包括运行环境和开发工具的平台...

    DotNetGuide,C#面试题,.NET Core面试题,MySQL面试题,Redis面试题,大厂面试题

    本压缩包中的资源涵盖了几个核心的编程语言和技术,包括C#、.NET Core、MySQL、Redis以及大厂面试题,这些都是现代企业级应用开发中不可或缺的部分。让我们逐一深入探讨这些知识点。 1. **C#**:C#是一种面向对象的...

    .NET大量的面试题集

    .NET框架是微软开发的一种软件开发平台,广泛应用于构建企业级应用程序和服务。面试中涉及.NET的知识点通常涵盖了语言基础、框架组件、设计模式、并发处理、性能优化等多个方面。以下是一些可能在.NET面试中出现的...

    C#.net笔试面试题集合

    总之,这个C#.NET笔试面试题集合提供了全面的准备材料,帮助求职者从技术知识到面试技巧进行全面准备,以提高在竞争激烈的IT就业市场中的竞争力。通过深入学习和实践这些题目,不仅可以增强自身的技能,还可以增加在...

    C#+.NET+Asp.net+经典面试题锦集

    在IT行业中,C#、.NET以及ASP.NET是微软生态系统中的关键组成部分,广泛应用于企业级应用开发。这些技术栈在面试中常常成为考察候选人技能的重要领域。以下是对这些知识点的详细解析: 一、C#(C Sharp) 1. **...

    2009.net经典面试题集

    2009年的.NET面试题集反映了当时.NET技术的发展状况,对于理解当时的.NET技术和面试流程具有重要的参考价值。 在.NET面试中,通常会涉及以下几个核心知识点: 1. **C#语言基础**:作为.NET的主要编程语言,C#的...

    进入IT企业必读的200个+.NET面试题.pdf )

    ### .NET面试题详解 #### 第2章 .NET框架基础 **2.1 .NET基础概念** - **2.1.1 什么是CTS、CLS和CLR?** - **CTS (Common Type System)**:公共类型系统是.NET框架的核心组件之一,它定义了一组规则来确保所有...

    .net面试题

    《.NET面试题详解》 在.NET面试中,掌握核心概念和技术细节至关重要。本文将针对.NET面试中常见的问题进行深入解析,帮助求职者更好地准备面试,理解企业对人才的需求。 首先,我们来看基础的访问修饰符:private...

    进入IT企业必读的200个.NET面试题pdf

    下面,我们将根据“进入IT企业必读的200个.NET面试题”这一主题,深入探讨.NET框架中的关键知识点。 1. **.NET Framework结构**:理解.NET Framework的基本架构非常重要,包括CLR、基类库(BCL)、ASP.NET、ADO.NET...

Global site tag (gtag.js) - Google Analytics