整理一下最近面試被問到的主要題目。由於本人主要是做WEB及WEB SERVICE這塊,使用的語言主要是C#,資料庫主要用到的也是MSSQL。所以就分成這些塊來整理(有些是在面試之後才意識到回答不對),也包括部分別人被問及的。每一次面試都是一個成長的過程,分享一下:
一、HTML、CSS
- position有哪幾種值,各是怎麼使用的?
- 一個左右佈局,如何實現?
- SPAN與DIV的區別
二、JAVASCRIPT, JS FRAMEWORK
- window.onload與jQuery中的ready有何區別?
- 什麼是閉包?寫一下。
http://baike.baidu.com/view/648413.htm
function 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裡面介面卡模式是什麼樣的?