記得在5月9號的時候,我去過凡客面試。這個面試掛了的主要原因是自己差不多快一年都沒弄Web方面的項目了。那時根本沒想到換工作,主要是看到很多同事都紛紛離職,在中午吃飯的時候難免會討論一些公司,其中就包括凡客,於是帶着好奇晚上回家也投了份簡歷給凡客。出乎意料的是5月7號的晚上7點多的時候接到凡客的面試通知。。。。
5月9號早早的到了凡客,鹽市口中環廣場36樓,也算成都市的中心了吧。進入凡客被前台MM妹妹接待到一個辦公室里邊,然后人事部的拿了份表單給我,填寫自己的一些基本信息。差不多10分鍾后就開始真正地面試之旅了。。。。
一個男的,差不多30來歲,拿着我的簡歷看看了,就開始向我開炮了。第一句話就感覺被藐視了,“你才工作一年吧,那我問你一些簡單的問題”。
第一道題:階乘5!:這個題平時都不知道寫了多少個N次了,可當時不知道怎么就蒙了。然后他就安慰的說,這些東西其實只有在學校才寫,離開學校一年了差不多忘了也正常。
public int getNum(int n){
if(n==1 || n==0)
return n;
else{
return n*getNum(n-1);
}
}
第二道題:說說抽象類和接口的區別,這個題以前面試被問過N次了,然后我也結合自己的項目簡單的說了下。就例如我們的項目分平台和子系統,平台都是提供接口給子系統來加載子系統的。然后他就問這個可不可使用抽象類了,由於平台必須要保證子系統的可擴展性就必須使用接口。他又問,如果現在就只有這些功能不需要擴展那能不能使用抽象類呢,反正我是被問蒙了。
抽象類和接口的區別:
1、抽象類中抽象方法只能有方法聲明,不能包含方法體;而方法就可以包含方法體;接口只有方法聲明。
2、抽象類可以包含字段而接口不能包含字段。
3、抽象類的所有成員可以添加訪問修飾符,而接口不能顯示的添加修飾符。
4、接口是多繼承,而抽象類是單繼承。
5、例如,Windows窗體可以用抽象類來實現,把共有的操作和屬性放到抽象類里邊,讓窗體繼承這個抽象類,在根據自己的需求來擴充。而例如打印功能就可以提取成接口,因為窗體的具體內容不同,就需要根據自己的要求去實現打印功能。打印時只通過接口來調用,而不在乎哪個窗體來打印。而且打印的時候只需通過接口調用不要調用整個窗體。
第三道題:你了解頁面的生命周期嗎?這些早都忘得差不多了,就只是簡簡單單的說了些頁面生命周期的一些事件。哎,再次蒙了。。。
》aspx頁面通過網絡訪問服務器
》IIS接受服務請求
》IIS分析請求,返回靜態結果(靜態文件);處理不了的請求就通過映射表發送到ASPNET_ISAPI.DLL可擴展程序
》可擴展程序程序把請求交給aspnet_wp.exe或者aspnet_w3wp.exe程序
》aspnet_wp.exe或者aspnet_w3wp.exe調用IHttpRunTime接口的方法處理請求。由IHttpRunTime來處理所有的請求,他的工作:
(1)將報文數據裝入HttpWorkerRequest對象對應的屬性(便於其他地方使用)
(2)調用HttpApplicationFactory類的靜態方法創建HttpApplication對象。(創建之前查看HttpApplication池,有沒有空閑HttpApplication
,沒有才創建)
(3)創建HttpContext上下文,HttpContext主要包含HttpRequest和HttpRespnose兩個對象
HttpRequest包含所有的請求信息,來源於HttpWorkerRequest對象的屬性
HttpResponse包含TestWriter對象,來存儲返回結果
(4)需要將HttpContext對象保存到HttpApplication對象中,因為HttpApplication對象要執行IHttpHandler接口對象的ProcessRequest方法需
要上下文
》HttpApplication執行ProcessRequest方法(即執行管道),一共有19個事件,第八個事件時創建HttpHandler對象(頁面對象),11到12事件
之間,執行被創建HttpHandler對象的ProcessRequest方法。
頁面生命周期:
1、PreInit:設置master Page、設置主題、初始化控件
2、Init:此事件發生在所有的控件被初始化以后,讀取或者初始化控件的屬性。
3、InitComplete:初始化完成事件
4、PreLoad:加載頁面的ViewState和所有控件,然后處理包含在Request中的Postback數據。
5、Load:此事件先遞歸調用控件的onload事件,直到所有的控件被加載完成。這個事件主要用來設置控件的屬性的值。
6、LoadComplete:加載完成事件。
7、PreRender:在HTML被生成之前的最后一個事件,這個事件也是修改被返回的HTML的最后機會。
8、Render:主要把HTML返回到客戶端。
9、UnLoad:清理頁面,遞歸清理頁面控件,例如關閉打開文件,關閉數據庫連接等等。
第四道題:你使用Jquery嗎?這個我肯定使用過的,我簡歷上都些的有,可也是很長時間都沒用了呀。然后他問我$("#..."),這個是通過什么獲取的。這個我肯定知道,元素ID呀。然后叫我說一些其他的選擇器,回答的也就吞吞吐吐的。
基本:$("#id")、$(".class")、$("element")、$("elem1,elem2,..")
層次: $("ances dese")、$("parent > child")、$("prev + next")、$("prev~siblings")
屬性:[attribute] [attribute=value][attribute!=value][attribute^=value][attribute$=value]等等。
問我有沒有用Sql Server,因為我現在這個項目沒有用,我就說好久沒用了,當時那個"傻"呀。然后問我簡單的Sql語句。
colum1 colum2
a 2
b 3
a 4
b 2
c 4然后寫Sql語句統計:SELECT colum1, SUM(colum2) FROM table GROUP BY colum2 ORDER BY column1。他也沒說對還是錯。
后面還想還有些問題記不得了,反正是一次有一次的蒙了,其實自己也是去抱着試試的態度,因為自己也很久沒寫asp.net。
在這之后,我就決心花兩個月的事件復習asp.net方面的知識以及在把ClR via C#的重點知識看一次。
下面繼續自己的第二次凡客面試總結。。。
又一次凡客面試體驗_2