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