.net软件工程师面试总结(1)

其实对于应届生面试,如果你的实战经验不足的话,面试官一般会问一些基础的问题.(本博客内容答案是总结了一些原作者的知识,)

1、接口和抽象类的区别(from: http://www.cnblogs.com/huihui-gohay/archive/2009/12/13/1623070.html#undefined)

    抽象类和接口的区别在于使用动机。使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。

   延伸:

     接口,在表面上有几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类和接口所实现(继承),一般形式是

           interface interface1

                  {

                       void method1{}

                       void method2{int para1}

                       void method1{string para2, int para3  }

                   }

      接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。体现了自然界“如果你是……则必须能……”的理念。

      接口是在一定粒度视图上同类事物的抽象表示。注意这里强调了在一定粒度视图上,因为“同类事物”这个概念是相对的,它因为粒度视图不同而       不同。

      联想到面向接口编程和面向对象编程,他们两个区别是什么呢

      面向接口编程:在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。

      面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。

2、SQL内连接,左连接,右连接,外连接,自然连接(from: http://www.blogjava.net/zolly/archive/2007/10/23/SQLJION.html)

    [1] 外连接:包括左连接,右连接(左外连接和右外连接)和完全连接

      (1)左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。

      (2)右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

      (3)完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。   

    [2] 内连接:包括自然连接和等值连接

         内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行

   [3]交叉连接
      交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合

3、.NET Framework 4.0的优点

      http://www.cnblogs.com/ATree/archive/2010/05/28/net-framework-new-features.html

      还需理解。。。。。。

4、WCF

    Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部      分。由 .NET Framework 3.0 开始引入。

  WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。

  WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。

  WCF专门用于面向服务开发

    from: http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html

5、重写、面向对象

    封装、继承、多态

   (1) 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性

   (2)多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

实现多态,有二种方式,覆盖,重载

(3)继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

通过继承创建的新类称为“子类”或“派生类”。

被继承的类称为“基类”、“父类”或“超类”。

继承的过程,就是从一般到特殊的过程。

要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。

继承概念的实现方式有三类:实现继承、接口继承和可视继承。

    •  实现继承是指使用基类的属性和方法而无需额外编码的能力;
    •  接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
    •  可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。

from: http://blog.csdn.net/ma1kong/article/details/4457044

6、webservice安全性访问,,访问量 并发

7、类 静态 非静态

8、事务

9、索引

10、linq

11、存储过程,数据逻辑 业务逻辑

12、值类型、引用类型 string是什么类型

 (由于时间问题后续补上!!!!)

原文地址:https://www.cnblogs.com/cuifangjiao/p/4328739.html