.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是什么类型

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

时间: 2024-10-13 06:19:47

.net软件工程师面试总结(1)的相关文章

java中高级软件工程师面试总结

最近去了几家公司面试java中高级工程师,打击挺大的,感觉自己一直以来没有很好的深入学习,对各种知识都是一知半解,但心又太高,想找更高薪的职位,结果面试屡屡碰壁,哎,心情好低落,也是时候静下心来,好好总结一下了,准备开个博客,记录一下以前用过的技术.开发经验等,也用来总结一下将来的学习和工作经历.这第一篇博客,就记录一下这段时间面试印象比较深刻的题目吧(答案也是在网上抄抄的哈): 一.为什么要用线程池,为什么不直接使用thread.start的方法,线程池用的是哪个类 线程池的优点: 第一:降低

问题集录--Java高级软件工程师面试考纲(转)

如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对Java高级开发工程师职位的考核纲要,希望可以帮助到需要的人. 当前,市面上有<Java XX宝典>类似的图书,而且图书中的内容都着重在讲解Java最为基础的部分,最严重的是,里面有着大量错误的内容,极具误导性.另外,网上也有各种各样的Java面试题,很多也是着重在Java语言基础上.实际上,如果

京东、tp-link软件工程师面试复盘

京东二面: 一面和二面之间隔了十一小长假,没有特别认真地准备,面试心态就有问题.原因有很多,私人原因占大部分.去北京面试的那一天整个人都非常沉重,也没指望会过,也不知道为什么要去.但这场面试让我更清楚自己的边界在哪里,要学的东西真的还有很多. 1.hashMap的底层实现原理 Entry数组 Entry对象的属性:key.value.next.hash 冲突解决的方式:开放定址法.链地址法 2.jvm内存模型 3.数据库的ER图 4.手写二分排序 5.进程和线程的区别和联系 6.Java自带的线

透露一下Java软件工程师面试常见问题集锦之一

1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象. 2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以从它的基类

vc++视频教程 软件工程师培训课程 VC知识库大讲堂

下载地址: http://www.enginedx.com/78/m299/ <C/C++软件工程师实战能力集训大纲>的现实意义在哪里?]         1.作为一个C/C++软件工程师,需要掌握的东西真是挺多的:        2.纵观目前中国的C/C++ 人才队伍,能满足以上能力要求的,只在少数.很多用人企业感叹,社招的人员能力参差不齐.普遍现象是他们只对其中的某一小部分内容有一个熟练的掌握,而对大部分的内容一知半解,甚至一无所知.这也是直接导致国内软件业开发实力普遍不强的最重要的原因.

Linux运维工程师面试-部分题库(答案版)

最近两个月有意跳槽,看到了一篇Linux运维工程师面试-部分题,就试着做了一下,感觉对Linux基础部分挺有帮助,在这里整理一份参考答案给大家,错误之处还望多多指出. 博文原地址 http://wgkgood.blog.51cto.com/1192594/1627684 一.Linux操作系统知识 1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块? 答: 常见的Linux发现版本有Redhat.Centos.Debian.Ubuntu.Suse 最擅长R

软件工程师必备的24个软技能

软技能通常是被低估的.几乎所有的软件工程师都知道要关注技术的提高,但是忽视的软技能很可能会影响你的职业生涯.下面疯狂软件Android培训技术专家将介绍24个对程序员非常重要的软技能,以方便程序员们在无形中提高自己的人生格局.更多IT技术知识,请登录疯狂软件教育中心. 1:学会如何学习 学无止境. 2:制定阅读规划 程序员的生活常常没有规划.谁也不知道自己是否能够真正地执行自己的阅读规划.但是按照时间表总比自己漫无目的地修读和看书要好. 3:改善健康 睡眠和工作对于保持最佳的脑功能状态非常重要.

.NET软件工程师专业高端网络在线培训,一对一辅导,包就业视频教程

.NET软件工程师专业高端网络在线培训就业课程(周末上课,在线教学,异地学习,上海就业)相信资料下载  全部在线网络培训,专业老师一对一服务,随时为您讲解课程及课后问题.终身的VIP服务,包就业,工作之后照样提供服务.有需要详细了解的,请联系QQ:1026270010 用到技术:MVC5,EF6,BootStrap,HTML5,JqueryMobile,VS,.NET,ASP.NET 课程优势: 优势1.强大的课程体系,首创任务驱动教学法,42个经典案例,.NET开发一网打尽. 我们从.NET负

Linux运维工程师面试-部分题库

Linux运维工程师面试-部分题库(免费分享) 一.Linux操作系统知识 1.常见的Linux发行版本都有什么?你最擅长哪一个?它的官网网站是什么?说明你擅长哪一块? 2.Linux开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解? 3.企业中Linux服务器系统分区标准是什么?(硬盘为300G,内存16G) 4.某一天突然发现Linux系统文件只读,该怎么办呢?完整操作步骤. 5.安装一台系统使用DVD光盘安装,如何安装50台Linux系统如何安装呢?思考一下. 6.用虚拟机安装了一