關于高級開發(fā)人員的面試題
關于高級開發(fā)人員的面試題
不管什么行業(yè),招人都有相同的測評因素,目的都是在最短時間內了解最多的個人信息。下面是學習啦小編為你整理的關于高級開發(fā)人員的面試題及答案,希望你喜歡。
關于高級開發(fā)人員的面試題及答案
1) DateTime.Parse(myString); 這行代碼有什么問題?
有問題,當myString不能滿足時間格式要求的時候,會引發(fā)異常,建議使用DateTime.TryParse() ,同時,還需要注意到文化區(qū)域的設置,如果做代碼規(guī)范檢查,該語句也會不符合規(guī)范,就是因為缺少文化區(qū)域的設置
2) PDB是什么東西? 在調試中它應該放在哪里?
PDB是用于保存調試和項目狀態(tài)信息的文件,在debug的時候將產生pdb文件,調試的時候應該放在和對應應用程序集相同目錄。 默認的是同一目錄,ide還可以設置全局pdb symbol文件的地址,這也是vs2008能調試.net framework source code的方法。還可以為解決方案指定pdb位置
3) 寫一個標準的lock(),在訪問變量的前后創(chuàng)建臨界區(qū),要有"雙重檢查"
4) 什么叫FullTrust?放入GAC的assembly是否是FullTrust的?
FullTrust完全信任。放入GAC中的Assembly是否FullTrust我的理解不是。我理解FullTrust是可以通過代碼設定的
5) 代碼加上需要安全權限的特性有什么好處?
可以更加靈活的設置對代碼的訪問權限,實現(xiàn)代碼級保護。?這點不是特清楚,有明白的給講解下。
6) gacutil /l | find /i "Corillian" 這句命令的作用是什么?
全局程序集緩存中如果有Corillian就更新該程序集,沒有就安裝
7) sn -t foo.dll 這句命令是干嘛的?
顯示程序集foo.dll的公鑰標記
8) DCOM需要防火墻打開哪些端口?端口135是干嘛用的?
135端口,因為DCOM的端口號是隨機分配的,默認情況下,會分配1024以上的端口號,所以默認情況下,DCOM不能穿越防火墻。因為根本不曉得開哪個端口。但有解決辦法可以使DCOM分配的端口號固定,有關內容我在http://www.cnblogs.com/jillzhang/archive/2008/02/20/1075057.html 有過一些描述。135是遠程過程調用(RPC)的默認端口
9)
我想OOP和SOA應該沒有對比性吧。OOP是一種編程模型,強調將復雜的邏輯分解出小的模塊,特性是繼承,封裝和多態(tài) 。而SOA是一個技術框架,技術框架和編程模型應該說不是一碼事吧?SOA的思想是將業(yè)務邏輯封裝成服務或者中間件提供給應用程序來調用,當然其組件化思想是繼承和發(fā)揚了OOP的優(yōu)點。
10) XmlSerializer是如何工作的?使用這個類的進程需要什么ACL權限?
XmlSerializer是將對象的屬性和字段進行序列化和反序列化的,序列化成為xml數(shù)據(jù),反序列化再將xml轉換成對象。應該至少需要ACL權限中的讀權限.
11)為什么不提倡catch(Exception)?
原因可能有兩點:1)try..catch在出現(xiàn)異常的時候影響性能 2)應該捕獲更具體得異常,比如IOExeception,OutOfMemoryException等
12)Debug.Write和Trace.Write有什么不同?何時應該使用哪一個?
Debug.Write是調試的時候向跟蹤窗口輸出信息。當編譯模式為debug的時候才有效,為release的時候Debug.Write在編譯的時候會忽略,而Trace則是在debug和release兩種模式下均可以向跟蹤窗口輸出信息。
13)Debug Build和Release Build的區(qū)別,是否會有明顯的速度變化?請說明理由。
Debug會產生pdb文件,release不會。Debug用于開發(fā)時的調試,不能要于部署,而release用于部署.debug編譯一些特殊代碼,比如#IFDEBUG Debug.Write等,而Release則會將那些特殊標記省略
14)JIT是以assembly為單位發(fā)生還是以方法為單位發(fā)生?這對于工作區(qū)有何影響?
方法,道理很簡單,因為對于一次運行,很可能只用到一個程序集中極少數(shù)類型和對象,而大部分可能并不會被使用,此時CLR傻乎乎的給整個程序集都給Compile了,CLR不是傻瘋了么
15)對比抽象基類和接口的使用
抽象類能有具體實現(xiàn),而接口只定義行為規(guī)范,不能有具體實現(xiàn)。一個類只能繼承一個父類,但能實現(xiàn)多個接口。
16)a.Equals(b)和a == b一樣嗎?
不一樣。多數(shù)情況下,a.Equals(b)表示a與b一致, a==b表示a與b的值相等 。也可以有具體重載
17)在對象比較中,對象一致和對象相等分別是指什么?
對象一致是指兩個對象是同一個對象,引用相同。而對象相等是指兩個對象的值相同,但引用不一定相同
18)在.NET中如何實現(xiàn)深拷貝(deep copy)?
實現(xiàn)IClonable接口
19)請解釋一下IClonable
IClonable方法是實現(xiàn)深度復制的接口,實現(xiàn)它應該能深度復制一個對象出來。深度復制的特征的調用對象的構造方法,創(chuàng)建新的對象,包括創(chuàng)建對象中嵌套的引用對象的新實例。而Shadow復制則不同,是淺表復制,不重新創(chuàng)建新實例。淺表復制的實現(xiàn)是Object.MemberWiseClone().
20)什么叫裝箱?
裝箱(boxing)是將值類型的數(shù)據(jù)轉化成引用類型,int i=3; object o = i ;便是裝箱過程,而拆箱(unboxing)是將飲用類型數(shù)據(jù)轉換值類型,比如int j = (int)o;屬于拆箱
21)string是值類型還是引用類型?
引用類型
22)XmlSerializer使用的針對屬性的模式有什么好處?解決了什么問題?
只序列化有用的數(shù)據(jù),而不是序列化整個對象。實現(xiàn)沒必要的數(shù)據(jù)冗余,和提升序列化時的性能。
看過“關于高級開發(fā)人員的面試題及答案”的人還看了: