整理一下最近面试被问到的主要题目。由于本人主要是做WEB及WEB SERVICE这块,使用的语言主要是C#,数据库主要用到的也是MSSQL。所以就分成这些块来整理(有些是在面试之后才意识到回答不对),也包括部分别人被问及的。每一次面试都是一个成长的过程,分享一下:
一、HTML、CSS
- position有哪几种值,各是怎么使用的?
- 一个左右布局,如何实现?
- SPAN与DIV的区别
二、JAVASCRIPT, JS FRAMEWORK
- window.onload与jQuery中的ready有何区别?
- 什么是闭包?写一下。
http://baike.baidu.com/view/648413.htmfunction a(){
var i=0;
function b(){
alert(++i);
}
return b;
}
var c = a();
c();in C#:
void MethodA(){
int i = 5; Action m = delegate() {
i = i + 3;
};
i ++;
m();
i++;
} - jQuery中有个叫"on"的API,它是怎么使用的?
- JavaScript中类是什么样子?继承是如何实现的?
function o1(name){this.Name = name; this.func1 = function(){alert('from o1.func1');}}
function o2(name){o1.apply(this, [name]); this.func2 = function(){alert('fromt o2.func2:' + this.Name);}} var o = new o2('abc');
o.func1();
o.func2();这里有一篇关于javascript中的this 的文章。
- 在变量定义的时候,"var a = null"与“a = null"(没有var)有何区别?
- 在JavaScript里面可以通过POST调用REST API吗?
三、WEB及ASP.NET MVC(奇怪居然没问及EF)
- 页面与页面之间传递参数有哪几种方式?ASP.NET MVC中提供了一个可以直接使用的的是什么?
- 什么 MVC?
- MVC里面的template是做什么用的?
四、.NET及C#
- object.Equals与“==”有什么区别?
- 简单介绍引用与值类型?
- 装箱与拆箱?哪个会更耗性能?
- 什么是多态(polyphism)?
- 抽象类(Abstract class)与接口(interface)有什么区别?
- IQueryable与IEnumerable的区别?
- 有一List<Person>对象,如何把Person.Name以逗号串起来?在Linq中提供的Aggregate扩展方法在这是如何实现的?
- List<Person>,写一Lambda表达式要求得到List<Person.Name>
- 简单介绍一下内存管理(GC)
- 简单介绍一下事件。
- DI与Ioc的区别?
- DI中实例的的生命周期有几种管理方式?
- 多线程你了解不?在进行线程同步的时候用到哪几种方式?
- lock与Monitor的区别?
- 扩展方法,为string扩展返回把奇数位的字符串。
- var与dynamic的区别?
- Converter<TInput,TOutput>
- Finalize与Dispose的区别?
- What's volatile variable? When to use it?
- C#不同版本中引入的哪些新特性?
- static 与 const 的区别? 使用readonly关键字 与 const 的区别?
- String与StringBuilder的区别?如果请您自己写一个StringBuilder类,您怎么实现,思路?
- 有没有基于IQueryProvider写过自定义的Provider?
五、数据库
- 什么是聚簇索引与非聚簇索引?
- 有一个表PatientName, PatientAge, CheckDateTime;请写出每个月看病病人的平均年龄,提示一个病人一个月内可以来医院多次。
- 使用过临时表?临时表有哪几种?各有什么 区别?
- 临时表与表变量有什么区别?
http://blogs.msdn.com/b/apgcdsd/archive/2012/03/27/tempdb-compare.aspx - 什么是CTE(Common Table Expression)?有什么优点?
其实就是WITH T AS(...)。HERE for details. - 使用过存储过程没?如何在存储过程中调用另一个存储过程?
- 存储过程与函数有什么区别?
- (自己加的)表与视图有什么区别?
- 事务的隔离级别有哪几种,分别介绍一下。
- READ UNCOMMITED
- READ COMMITED (depends on flag READ_COMMITED_SNAPSHOT)
- REPEATABLE READ
- SNAPSHOT
- SERIALIZABLE
- 简单地介绍一下设计范式(Table Normalization,面试时听到这词,懵了,直接回答第一次听说。悔,只是不知道原来指的是设计范式,虽然也不会)
- MySql中数据库引擎有几种?
- deadlock一般是怎么处理的,如何避免死锁?死锁是怎么产生的,可以简单地写一个出来不?
- 能举出一些不同SQL SERVER版本之间新增了什么功能?
- 如果一个存储过程在线上用ADO.NET调起来很慢,但用查询分析器里查询起来却很快,这是为什么? 提示:one case: parameter got casted to varchar and used in query.
- 那把int参数CAST成字符串可以与INT字段比较吗?
六、WCF(独立出来)
- WCF中要提供一个服务,需要几个主要的主成部分?
- WCF中主要有哪几种协议(Contract)?DataContract与MessageContract有什么区别?
- WCF中一个如何创建一个Endpoint?
- WCF中系统提供的有哪些binging? 您常用的是哪几种。
- 底层的传输协议主要有哪些?有什么不同?
- SOAP与REST有什么区别?
- WCF与传统的WEB SERVICE有什么区别?
七、设计模式
- 您最经常使用的设计模式是哪个?
- Singleton里面,线程安全是如何考虑的?
- 一个简单的工厂模式,有一类叫AbstractDBFactory,里面的static方法 static AbastractDB CreateDB(string type, string connString)内是使用if (type == "ORALCE") ...,如何使用反射(reflection)来重构
- Unit of Work
http://martinfowler.com/eaaCatalog/unitOfWork.html
八、数据结构
- dictionary与数组的区别?
九、思路及经验
- 有没有压力测试的经验?
- 对一个指定的页面如何性能调优?
- 有一存储过程,如何控制它被多个不同的服务器并发调用?
十、其它
- 下面的代码会出错,具体在哪行报哪些错?
static int k;
static void Main(){
int i;
int j = i;
int m = k;
} - 有两个已经排好序的数组,长度分别是m和n,请找出相同的元素,时间复杂度为O(m+n)。
- 与上一题类似的:有两字符串a与b,请找出a与b*同的字符,a有但b没有的以及b有但a没有的。
- 介绍一下SDLC?
http://en.wikipedia.org/wiki/Systems_development_life-cycle - what's REST stands for?
Representational State Transfer - Python里面适配器模式是什么样的?