.net程序员面试小结(内附一些面试题和答案)
今天下午去面试,面试官和HR小姐姐都很好,没有做面试题,用聊天的方式来交流技术,整个过程很轻松,从中也学到了很多知识。
下面就来总结一下面试过程。
一、深刻了解自己的简历
无论是HR还是技术面试人,首先都从简历里面了解你,我的这个面试题都是围绕着我的简历中提到的技术来开展的,令我不好意思的是有好多问题我并不能给出很好的深层次的答案。
二、生活业余时间也要扩展自己
平时多关注技术类新闻,多写博客注意积累,这个也有问到哦。
三、问题总结
1、三层架构是哪三层?各自干什么?三层架构有什么优缺点?(链接:http://blog.163.com/jlkjwjh_changfeng/blog/static/3633782620108269504961/)
三层指
表现层(UI):用户看到的界面
业务逻辑层(BLL):对数据层的操作,对数据业务逻辑的处理。
数据访问层(DAL):直接操作数据库,对数据进行查找、增添、修改、删除等操作。
优点:
1)、开发人员可以只专注于整个结构中的某一层
2)、可以很容易用新的实现来替换原有层次的实现
3)、安全性高
4)、降低层与层之间的依赖,高内聚,低耦合
(内聚:一个模块内各个元素彼此结合的紧密程度;耦合:一个软件结构内不同模块之间互连程度的度量)
5)、有利于标准化
6)、利于各层逻辑的复用。
7)、扩展性强
8)、项目结构更清楚,分工更明确,有利于后期的升级和维护
缺点:
1)、降低了系统的性能,比如操作数据库需要中间层,而不是直连
2)、有可能会导致级联的修改,比如新加一个模块,需要三个层都新加。
3)、增加了成本,增加了代码量
=================================================================================
2、EF(entityFramework)和ADO.NET的对比(链接:http://blog.csdn.net/wangzl1163/article/details/72897170)
1)、使用EF开发只需要操作对象,使开发更对象化,抛弃了数据库为中心的思想,完全的面向对象的思想。ADO.NET以数据库为中心来开发数据访问层。
2)、采用EF减少了数据处理工作,可以简化开发,达到快速开发的目的。采用ADO.NET开发需要编写sql语句,并处理数据与对象的转换,开发效率低。
3)、EF消耗内存较大,ADO.NET消耗内存较小。EF的性能不如ADO.NET。
4)、EF处理数据库的方式是针对单个对象的,对数据库的增删改都是对一条记录而言。ADO.NET既适合逐条语句处理数据也适合批量删除、修改数据。
5)、EF不适合数据库中有大量存储过程、触发器的开关,此时ADO.NET适合。
6)、EF适用于表与表关系比较明确的环境中。如本应有外键关系,但又没建外键的,这是适用EF会增加工作量。ADO.NET对此没有要求。
===================================================================================
3、UEditor(百度富文本编辑器)和KindEditor的区别(链接:https://www.zzidc.com/info/biancheng/2508.html和http://blog.csdn.net/u013987661/article/details/54378005)
1)、Ke(KindEditor)要比Ue(UEditor)小
2)、Ke和Ue的容器不同,一个是textarea标签,一个是script标签,如果是ke的textarea标签的话,表单的参数名可以通过name指定,而ue提交表单的默认参数名是editorValue,可以通过创建对象的时候传入textarea参数解决。
KindEditor:
<textarea name="content"></textarea>
UEditor:
<script type="text/javascript">
var ue = UE.getEditor('editor',{toolbars: [
['fullscreen', 'source', 'undo', 'redo'],
['bold', 'italic']
],textarea:"content"});
</script>
====================================================================================
4、重载(overload)和重写(override)的区别(链接:https://www.cnblogs.com/lonelyDog/archive/2011/11/16/2251011.html)
overload是重载,一般是用于在一个类内实现若干重载的方法,这些方法的名称相同而参数形式不同。
重载的规则:
1、在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。
重写(覆盖)的规则:
1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。
3、重写的方法的返回值必须和被重写的方法的返回一致;
4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;
5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没s有对其进行重写。
6、静态方法不能被重写为非静态的方法(会编译出错)。
===================================================================================
5、对委托和事件怎么理解(链接:http://www.tracefact.net/tech/009.html)
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。使用委托可以将多个方法绑定到同一个委托变量,当调用此变量时(这里用“调用”这个词,是因为此变量代表一个方法),可以依次调用所有绑定的方法。
事件是一种特殊的委托的实例,或者说是受限制的委托,是委托一种特殊应用,在类的外部只能施加+=,-=操作符。
===================================================================================
6、快速开发的工具有哪些?(这个我没有接触过T_T,希望有用过的能够告知一下,谢谢)
===================================================================================
7、sqlite和MS Sql server有什么不同
sqlite 是文件型数据库,是轻量级数据库,对小数据量的数据存储方便。
sqlserver是关系型数据库,是大型数据库,常用于企业级应用的后台数据存储。
语法的不同参考链接:http://blog.csdn.net/xsl1990/article/details/16851593
====================================================================================
好啦,就先总结这么多吧,以后慢慢再添,其实还有设计模式还有前端的一些问题没有写。
.net程序员面试小结(内附一些面试题和答案)的更多相关文章
- 两年Java程序员面试经验分享,从简历制作到面试总结!
前言 工作两年左右,实习一年左右,正式工作一年左右,其实挺尴尬的,高不成低不就.因此在面试许多公司,找到了目前最适合自己的公司之后.于是做一个关于面试的总结.希望能够给那些依旧在找工作的同学提供帮助. ...
- 程序员面试大揭秘——应聘微软、亚马逊、谷歌、苹果等IT公司你都要做什么准备?
对于多数求职者而言,面试好似一个迷局.你去了,见了几个面试官,答了一堆问题,然后,或两手空空离开,或幸运地拿到录用通知. 你有没有想过: 面试结果是怎么得出的? 面试官会不会互相交流? 公司最看重哪些 ...
- 《Java程序员面试笔试宝典》终于在万众期待中出版啦~
<Java程序员面试笔试宝典>终于在万众期待中出版啦~它是知名畅销书<程序员面试笔试宝典>的姊妹篇,而定价只要48元哦,恰逢求职季节,希望本书的出版能够让更多的求职者能够走进理 ...
- JAVA程序员面试宝典
程序员面试之葵花宝典 面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面.抽象并不5. 打算了解全部问题 ...
- 新书出版 |《Oracle程序员面试笔试宝典》
新书出版 |<Oracle程序员面试笔试宝典> <Oracle程序员面试笔试宝典> 丛书[数据库 面试 笔试宝典]已在京东.淘宝和天猫预售,一共 5 本,目前市场上已有4本,丛 ...
- C++程序员面试题目总结(涉及C++基础、多线程多进程、网络编程、数据结构与算法)
说明:C++程序员面试题目总结(涉及C++基础知识.多线程多进程.TCP/IP网络编程.Linux操作.数据结构与算法) 内容来自作者看过的帖子或者看过的文章,个人整理自互联网,如有侵权,请联系作者 ...
- Java程序员面试之葵花宝典
程序员面试之葵花宝典 1.面向对象的特征有哪些方面 抽象:抽象就是忽略一个主题中与当前目标 无关的那些方面, 以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而 只是选择其中的一部 ...
- Java程序员面试技巧
Java 程序员面试技巧 对于每一个求职者,有一份优秀的简历是很必要的,企业通过简历的筛选,会给予求职者面试的机会.然而,很多求职者就是在面试过程中与钟情的工作失之交臂.如何在面试中取得成功呢?“细节 ...
- .Net程序员面试 中级篇 (回答Scott Hanselman的问题)
继<.Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题)>跟<.Net程序员面试 每个人都应知道篇 (回答Scott Hanselman的问题)>之 ...
随机推荐
- BZOJ 1491: [NOI2007]社交网络(Floyd+暴力乱搞)
题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题解: 先看数据范围,n<=100..欸可以乱搞了 首先因为小学学过的乘法原理 ...
- 大数质因解:浅谈Miller-Rabin和Pollard-Rho算法
2017-07-19 08:54 Amphetamine:能发一下代码吗? 应我那位谜一样好友的邀约,我打算好好看一看Miller-Rabin和Pollard-Rho算法.很奇怪,各种地方有很多代码描 ...
- 洛谷P3369 普通平衡树
刚学平衡树,分别用了Splay和fhq-treap交了一遍. 这是Splay的板子,貌似比较短? Splay #include <iostream> #include <cstdio ...
- Mybatis的应用1 Mybatis和logback的应用配置
首先新建一个module, 然后,在pom文件里面添加一些引用的项. pom.xml <?xml version="1.0" encoding="UTF-8&quo ...
- 不得不用的提高效率小技巧让你用Mac更顺手| Mac小技巧(三)
文章内容及图片来源于:知乎,如果涉及版权问题,请联系作者删除 文章收录于:风云社区(提供上千款各类mac软件的下载) 1. 用预览给GIF删帧 我们在给文章配图或者做表情包的过程中,常需要截取 GIF ...
- C++回顾day03---<输入输出流>
一:C++输入输出包含下面3个方面 (一)标准I/O 对系统指定的标准设备的输入和输出.即从键盘输入数据,输出到显示器屏幕.这种输入输出称为标准的输入输出. (二)文件I/O 以外存磁盘文件为对象进行 ...
- HTML多图片压缩上传
本文介绍的是多张图片在前端统一压缩后再通过ajax提交给后台处理的业务,使用到的是LocalResizeIMG.js插件. 一.首先介绍项目结构 二.分享引用核心文件,这里没有分享CSS文件,因为没有 ...
- 用vim打开.py和.sh文件自动添加头
在~/.vimrc文件最后一行添加 "auto add pyhton header --start autocmd BufNewFile *.py 0r ~/.vim/template/py ...
- Java虚拟机垃圾回收(三) 7种垃圾收集器
Java虚拟机垃圾回收(三) 7种垃圾收集器 主要特点 应用场景 设置参数 基本运行原理 在<Java虚拟机垃圾回收(一) 基础>中了解到如何判断对象是存活还是已经死亡?在<Java ...
- 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字
一. 各类数据结构比较及其线程安全问题 1. Array(数组): 分配在连续内存中,不能随意扩展,数组中数值类型必须是一致的.数组的声明有两种形式:直接定义长度,然后赋值:直接赋值. 缺点:插入数据 ...