.Net面试经验总结(.Net/C#)

首先是简历程序员

 

 

简历必定要认真对待,不能随随便便找个模板,它是你能不能获得面试的一个关键。
简历的模板能够参考该网站超级简历的程序员简历模板。面试

自我介绍ajax

 

 

这里说一下个人一个主要模板,须要根据不一样的公司有针对的准备不一样的自我介绍。各位面试官,您们好,很高兴获得此次面试机会,我叫XXX,毕业于XXX,具备较强的自学能力,在校期间经过自学掌握了相关的编程技术,
参加工做以来,前后独立开发了几个项目模块,主要包括XXX等,其中让我收获最大的一个项目是XXX,当时接到的任务就是XXX,在此期间个人主要任务参与前期的一些设计讨论以及后面的开发和维护,…………(这里能够介绍你经过什么技术解决了什么,完成了什么任务等)。通过这个项目开发使我在技术的掌握和问题的处理上都有了很大的进步。
我今天求职的岗位是.Net开发工程师,在XXX两年的.Net开发中,一直从事企业级应用管理系统的开发维护,使我拥有了扎实的编程基础和良好的编码习惯,并可以熟练的使用C#语言开发基于Web Form和Asp.Net MVC架构的应用程序。也使我清楚的知道这个岗位的主要工做内容,并使我在这方面有了必定的能力和经验积累,我相信我可以胜任该职位的工做,我很是承认并喜欢贵公司的理念,也但愿贵公司可以给我一次机会,让我加入到贵公司中。谢谢
算法

 

常见的面试题sql

 

 

面试时大部分都会有笔试题的,下面列举一些遇到的一些笔试题

数据库

.Net编程

 

 

.Net简述面向对象中封装、多态、继承的概念
答:封装:把一些功能的实现写在一个文件中,对外只开放一个接口,调用者经过这个接口来调用方法
继承:子类继承父类中的方法和属性,而且子类能够拥有本身的一些方法和属性
多态:经过继承实现不一样对象在调用相同的方法时,产生不一样的结果,这就是多态,重写或者重载设计模式

简述private、protected、public修饰符的访问权限
答:private : 私有成员, 在类的内部才能够访问。
protected : 保护成员,该类内部和继承类中能够访问。
public : 公共成员,彻底公开,没有访问限制。
internal: 当前程序集内能够访问。api

abstract、class、interface有什么区别
答:相同点:都不能被实例化,均可以经过继承来实现其抽象方法。
不一样点:接口支持多继承,抽象类不能实现多继承;
接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含它们的实现;抽象类能够定义字段、属性、包含有实现的方法。
接口能够做用于值类型和引用类型;抽象类只能做用于引用类型。例如,Struct就能够继承接口,而不能继承类。缓存

写一段C#访问SqlServer数据库的代码(来列举出ADO.Net中五个主要对象)
答:

 

 

列举两种你所使用过的设计模式,简述他们的概念和好处
答:单例模式:确保一个类只有一个实例,并提供一个访问它的全局访问点

C#中值类型与引用类型的区别,做为参数传递时有何不一样
赋值区别:将一个值类型变量赋给另外一个值类型变量时,将复制包含的值。引用类型变量的赋值只把对象的引用的指针赋值给变量,使得变量引用与对象共享同一个内存地址。
继承区别:值类型不能派生出新的类型:全部的值类型均隐式派生自 System.ValueType。引用类型通常都有继承性。
内存分配区别:值类型一般分配在栈上,引用类型一般分配在托管堆上
值类型不可能包含 null 值,然而,可空类型功能容许将 null 赋给值类型。
值类型传递的是值的副本,引用类型传递的是对象引用,因此值参数的修改不影响原始值,引用类型的修改影响原始值;

C#中使用StringBuilder拼接字符串时有何优势
StringBuilder是动态对象,容许扩充他所封装的字符串中的字符数量,在生成string对象以前,不会产生任何string对象,因此在进行大量的字符串拼接或者频繁的堆某一个字符串进行操做时最好使用StringBuilder,而不要使用string

C#委托与与泛型的概念,事件是否是一种委托
委托是一种可用于封装命名和匿名方法的引用类型,委托相似于指针,可是委托是类型安全和可靠的,委托类都继承于System.Delegate类型,委托类型的声明和方法签名相似,有一个返回值和任意数目任意类型的参数。
泛型是C#语言和公共语言运行库(CLR)中的一个新功能,它将类型参数的概念引入了.NET Framework,经过使用泛型能够大大的简化强制类型转换或装箱操做的过程。

一列数的规则以下:一、一、二、三、五、八、1三、2一、34……求第30位数是多少,用递归算法实现
解答:总结递归规律:F(n)=F(n-2)+F(n-1) Fibonacci数列

图片

简述进程和线程的区别,以及写出多线程经常使用的对象和方法
进程是系统进行资源分配和调度的单位;线程是进程内部的一个执行单元,是CPU调度和分派的单位,一个线程能够建立和撤销另外一个线程,同一个进程中的多个线程也能够并发执行

图片

简述WebService、WebApi、WCF的区别,以及使用场景

列举Asp.Net页面之间传递值的几种方式

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

Asp.Net Session有什么做用,请描述你对Session的理解

简述重载和重写的概念,并手写一个简易的重载和重写
重载是方法的名称相同。参数或参数类型不一样,进行屡次重载以适应不一样的须要。重载是面向过程的概念

图片

重写(Override)是对基类中的虚方法进行重写。Override是面向对象的概念

图片

C#如何捕获代码异常
try
{
可能会出现异常的代码;
}
cath
{
出现异常后要执行的代码;
}现有集合:List collection = new List();
User类定义以下:

图片

请使用Linq或者Lambda一种实现如下查询

1.查询姓名中包含“张”的全部人

2.查询年龄在20到30岁之间的人(包含)

3.查询出2008年三月出生的全部人

4.查询姓名等于“张三”年龄最大的第一我的

5.按年龄分组查询每段年龄有多少人

是否使用过EF、Dapper等ORM、框架,简述这些框架的好处
提升开发效率,下降开发成本
使开发更加对象化
可移植
能够很方便地引入数据缓存之类的附加功能

 

 

WEB端的

 

 

JavaScript中的基础类型有哪些
Undefined、Null、Boolean、Number和String

简述函数与闭包的概念
函数:就是封装了一段可被重复调用执行的代码块,经过此代码块能够实现大量代码的重复使用
闭包就是可以读取其余函数内部变量的函数,因为在Javascript语言中,只有函数内部的子函数才能读取局部变量,所以能够把闭包简单理解成“定义在一个函数内部的函数”

请写出jQuery id class 属性 标签选择器语法
id选择器:KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲ids')、类选择器:(’.myClass’)、元素选择器:$(‘div’)

Ajax的概念,ajax请求的五个步骤
AJAX(即:异步的JavaScript和XML),是一种实现无页面刷新获取服务器数据的混合技术。

 

 

SQL方面的

 

 

用一条SQL语句查询出每门课程都大于80的学生的姓名

图片

答:

图片

使用SQL实现分页查询

图片

写一条sql语句取出表A中第31到40的记录(SqlServer,以自动增加的ID做为主键,注意:ID可能不是连续的)
答:

图片

编写SQL根据部门信息T_Org中的部门编号OrgCD、部门名称字段OrgName、以及员工信息表T_Employee中所属部门编号字段OrgCD、来更新员工信息表T_Employee中的所属部门字段OrgName

找出教师表(表名Teacher)中姓名(字段名Name)重复的数据,而后删除多余重复的记录,只留ID小的那个。

什么叫Sql注入,如何防止?
答:
用户根据系统的程序构造非法的参数从而致使程序执行不是程序员指望的恶意SQL语句。使用参数化的SQL就能够避免SQL注入。

介绍存储过程的基本概念和它的优缺点
答:
存储过程是一套已经预先编译好的SQL代码

1.运行速度:存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行一样的存储过程时,能够从内存中直接调用,因此执行速度会比普通sql快。

2.减小网络传输:存储过程直接就在数据库服务器上跑,全部的数据访问都在数据库服务器内部进行,不须要传输数据到其它服务器,因此会减小必定的网络传输。

3.可维护性

4.加强安全性

5.可扩展性:应用程序和数据库操做分开,独立进行

现有一学生表以下:

图片

请编写Sql查询出以下结果:

6.获取每一个班级的English的平均成绩,并按照降序排序

7.获取有一门不及格的人,并统计每一个班级的不及格人数(小于60分不及格)

注意:上面是找工做期间常遇到的部分面试题,其中设计模式基本都会考到

 

项目经验

 

 

这个是面试中最重要的了,基本都会根据你作的项目来进行询问里面遇到的一些技术,遇到的一些问题怎么解决的等等,这就要根据本身的项目来回答了

 

开放性问题

 

 

在工做中学习到了什么?
首先技术方面每一个项目都会学到一些特定的技术知识,我在与同事的沟通合做中,注重团队内部的团结,在工做中学习认识到合做的宝贵,以及实践的重要性。

你有没有带领团队的经验
我在以往的项目中与团队成员都可以融洽相处,咱们每周都会有技术培享会,我也会分享一些技术来相互学习,咱们有时候周六会有技术的培训,我也针对本身掌握的技术作了几回培训,虽然我没有带队的经验,但我相信我本身是可以作到的

为何选择这家公司?
我了解到贵公司在ERP行业属于领头行业,业务方面最为全面,研发实力也最为雄厚,经过公司的官方博客我还了解到公司的企业文化,我很是但愿能加入到这样一个优秀的企业中,让我可以实战研发能力,我会女里的工做,证实自身的价值

对本公司了解多少?
我了解到贵公司是中国最先的互联网即时通讯软件开发商,是我国互联网服务以及移动增值服务的提供商,并一直致力于即时通讯以及相关的增值业务的服务运营

你曾经面临最大的专业挑战是什么?你是怎么打败它的?
在项目开发过程当中也遇到了不少问题,其中让我印象比较深入的一个问题是XXX,经过这个问题也是我认识到,在编写代码时不只要注意代码的逻辑和可读性,同时也要考虑一下这些代码有没有可能会出现某些问题。

你认为本身的技术水平怎么样?
通过这两年的积累和成长,我对本身的技术颇有信心,我以为我算一个中级的开发者,我感受我能够胜任相关的各类开发任务

你对加班的见解?
若是是工做须要,我会责无旁贷的加班,我自己没有什么负担,能够全身心的投入到工做中,同时我也会提升工做效率,减小没必要要的加班

如何评价你上家公司,你为何从上家公司离职?
上一家公司在项目管理和系统集成方面较为突出,从中也学习到了不少的东西,通过这两年对ERP中一些系统的研发,使我了解了相关的业务流程并掌握了不少开发上的技巧,以及相关的一些技术,
之前的行业发展空间比较有限
原来的工做与本身的职业规划不合
原来的业务相对传统,我想作一些偏向互联网方面的一些产品,
公司在新的研发方向上没有一个明确的信息,
本身在过去的几年中也有了必定的经验积累,因此想寻求更适合本身发挥的一个平台
而且公司所用的技术栈不够丰富,
我对XXX类系统的前景更看好,我也但愿可以扩展本身的技能和对业务的了解,所以我但愿寻找一家作专业的B2B系统的企业,因此作了离职的决定

你有什么优势?
个人优势是有足够的专业能力,工做认真负责,好比在项目的开发过程当中,我做为项目的主要开发人员,天天都会认真规划和编写开发日程,方便其余成员了解开发进度并及时跟进项目进度

你有什么缺点?
缺点的话,比较执着把,好比有时候会由于一个技术问题致使很长时间或者可能加班到很晚都在研究怎么处理这个问题,这样有时候也会误了其余方面的工做,工做比较循序渐进吧,老是按照主管的要求去完成任务,还有就是本身的工做范围内有创新意识,可是没有及时的分享给其余的同事,这些问题我也一直在改善,我也相信我可以很快的解决

你的职业规划是什么?
如今最大的愿望就是能入职贵公司,虚心向周围优秀的同事学习,追赶他们,让本身变得更专业,而后三到五年的一个计划就是达到高级工程师的水平,在此期间我也会注重本身管理方面知识的积累,若是三年之后在管理方面有一些能力的话,我会向技术主管和项目经理的方向努力发展

若是你离职,你的老板有什么反应?
我和现任公司的老板关系很是好,我在项目中也承担了一个核心的研发工做,所以我离开时,他很是的不舍,但我更但愿有本身的一些职业发展,因此咱们通过友好的交谈,他也尊重我离职的这个决定,我也很是感谢他的理解和支持

END

推荐一个公众号:dotNET编程大全,扫码关注!

 

 

 

需加微信交流群的,请加小编微信号z438679770,切记备注 加群,小编将会第一时间邀请你进群!

相关文章
相关标签/搜索