




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
.net面試題及答案1.JIT是什么,它是如何工作的?GC是什么,簡述一下GC的工作方式?
JIT:Justintime,C#或者是VB.NET的代碼首先被編譯為IL存儲在本地,當(dāng)要運(yùn)行這些代碼的時(shí)候,CLR對IL進(jìn)展其次次編譯轉(zhuǎn)換成機(jī)器碼運(yùn)行。好處:可移植性,而且IL在加載到內(nèi)存中時(shí)將受到類型安全性方面檢查,這實(shí)現(xiàn)了更好的安全性和牢靠性。
GC:垃圾回收(garbagecollection),是依據(jù)程序的需要自動(dòng)安排和回收內(nèi)存的過程。垃圾回收器處理的是引用對象,而且只回收堆上的內(nèi)存。這意味著假設(shè)維持對一個(gè)對象的引用,就會阻擋GC重用對象使用的內(nèi)存。在.NET中,垃圾回收器采納的是mark-and-compact算法。在一次垃圾回收周期開頭的時(shí)候,它要識別對象的全部跟引用,依據(jù)這個(gè)引用可以遍歷每個(gè)根引用所標(biāo)識的一個(gè)樹形構(gòu)造,并遞歸確定全部引用指向的對象。這樣一來,垃圾回收器就可以識別全部可達(dá)的對象,在執(zhí)行回收的時(shí)候,GC不是枚舉全部訪問不到的對象,相反,通過壓縮全部相鄰的可達(dá)的對象來執(zhí)行垃圾回收。不行訪問的對象就會被掩蓋。垃圾回收的宗旨是提高內(nèi)存的利用率,它并不是用來清理文件句柄,和數(shù)據(jù)庫連接字符串,端口或者其他有限的資源(終接器finalizer,不能被顯示調(diào)用,不能傳遞任何參數(shù),即不能被重載,只有垃圾回收器才能調(diào)用終接器,使用Using語句進(jìn)展確定性終結(jié)
2.類(class)和構(gòu)造(struct)的區(qū)分是什么?它們對性能有影響嗎?
01.值類型與引用類型
構(gòu)造是值類型:值類型在棧上安排地址,全部的基類型都是構(gòu)造類型,例如:int對應(yīng)S32構(gòu)造,通過使用構(gòu)造可以創(chuàng)立更多的值類型
類是引用類型:引用類型在堆上安排地址堆棧的執(zhí)行效率要比堆的執(zhí)行效率高,可是堆棧的資源有限,不適合處理大的規(guī)律簡單的對象。所以構(gòu)造處理作為基類型對待的小對象,而類處理某個(gè)商業(yè)規(guī)律由于構(gòu)造是值類型所以構(gòu)造之間的賦值可以創(chuàng)立新的構(gòu)造,而類是引用類型,類之間的賦值只是復(fù)制引用
注:1.雖然構(gòu)造與類的”類型不一樣,可是他們的基類型都是對象(object),c#中全部類型的基類型都是object
2.雖然構(gòu)造的初始化也使用了New操作符可是構(gòu)造對象依舊安排在堆棧上而不是堆上,假如不使用“新建”(new),那么在初始化全部字段之前,字段將保持未賦值狀態(tài),且對象不行用
02.繼承性
構(gòu)造:不能從另外一個(gè)構(gòu)造或者類繼承,本身也不能被繼承,雖然構(gòu)造沒有明確的用sealed聲明,可是構(gòu)造是隱式的sealed.
類:完全可擴(kuò)展的,除非顯示的聲明sealed否則類可以繼承其他類和接口,自身也能被繼承注:雖然構(gòu)造不能被繼承可是構(gòu)造能夠繼承接口,方法和類繼承接口一樣
03.內(nèi)部構(gòu)造:
構(gòu)造:沒有默認(rèn)的構(gòu)造函數(shù),但是可以添加構(gòu)造函數(shù)沒有析構(gòu)函數(shù)沒有abstract和sealed(由于不能繼承)不能有protected修飾符可以不使用new初始化在構(gòu)造中初始化實(shí)例字段是錯(cuò)誤的
類:有默認(rèn)的構(gòu)造函數(shù)有析構(gòu)函數(shù)可以使用abstract和sealed有protected修飾符
必需使用new初始化
.net面試題及答案(二)
1.什么是元編程,.NET有哪些元編程的手段和場景?什么是反射?能否舉一些反射的常用場景?有人說反射性能較差,您怎么對待這個(gè)問題?有什么方法可以提高反射的性能嗎?
學(xué)著做OA的時(shí)候,動(dòng)態(tài)加載不同的DataProvider(Oracle和Sqlserver),便利,可以隨時(shí)替換不用重新編譯程序
2.托付是什么?匿名方法是什么?在C#3.0中,Lambda表達(dá)式是什么?擴(kuò)展方法是什么?LINQ是什么?您覺得C#3.0中還有哪些重要的特性,它們帶來了什么優(yōu)勢?BCL中哪些類庫和這些特性有關(guān)?您平常最常用哪些?
托付可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。
托付可以理解為指向一個(gè)函數(shù)的指針。
匿名方法:就是沒有實(shí)際方法聲明的托付實(shí)例?;蛘哒f,它們的定義是直接內(nèi)嵌在代碼中的。
Lambda表達(dá)式:是比匿名方法更加簡潔的一種匿名函數(shù)語法
托付和大事沒有可比性,由于托付是類型,大事是對象,下面說的是托付的對象(用托付方式實(shí)現(xiàn)的大事)和(標(biāo)準(zhǔn)的event方式實(shí)現(xiàn))大事的區(qū)分。大事的內(nèi)部是用托付實(shí)現(xiàn)的。由于對于大事來講,外部只能“注冊自己+=、注銷自己-=”,外界不行以注銷其他的注冊者,外界不行以主動(dòng)觸發(fā)大事,因此假如用Delegate就沒法進(jìn)展上面的掌握,因此誕生了大事這種語法。大事是用來閹割托付實(shí)例的,類比用一個(gè)自定義類閹割List。大事只能add、remove自己,不能賦值。大事只能+=、-=,不能=。大事內(nèi)部就是一個(gè)private的托付和add、remove兩個(gè)方法。
3.工作之外您看哪些技術(shù)相關(guān)的書、網(wǎng)站、社區(qū)、工程等等?
您還接觸哪些.NET以外的技術(shù),能和.NET或.NET中有針對性的局部做個(gè)比照嗎?
C#本質(zhì)論,SQLServer2023實(shí)戰(zhàn),數(shù)據(jù)構(gòu)造,ASP.NET揭秘,Javascript深入淺出
4.website和webapplication的區(qū)分
1)website修改后不需要重啟即可看到效果,webapplication需要
2)website不分namespace,webapplication有namespace
3)website為了兼容asp轉(zhuǎn)過來的開發(fā)人員習(xí)慣
4)沒有技術(shù)上的區(qū)分,調(diào)試習(xí)慣不同
5)website為每個(gè)編譯為一個(gè)dll,webapplication生成一個(gè)dll
6)不利于工程開發(fā),比方代碼出錯(cuò)不簡單發(fā)覺
.net面試題及答案(三)
1.特別的作用是什么?.NETBCL中有哪些常見的特別?在代碼中您是如何捕獲/處理特別的?在“catch(ex)”中,“throw”和“throwex”有什么區(qū)分?您會如何設(shè)計(jì)特別的構(gòu)造,什么狀況下您會拋出特別?
(1)C#語言的特別處理功能可幫忙您處理程序運(yùn)行時(shí)消失的任何意外或特別狀況
(2)throw會保存堆棧信息。throwex不會。固然,假如你拋出新的特別之前設(shè)置innerException的話,可以通過innerException的堆棧訪問原有的堆棧。
(3)靠特別才能發(fā)覺錯(cuò)誤的,通過trycatchfinally來捕獲特別。假如是未預(yù)料到的則不處理(內(nèi)存缺乏,刪除文件)直接報(bào)錯(cuò)更簡單發(fā)覺錯(cuò)誤catch塊從最詳細(xì)到常規(guī)排列
2.ListT和T[]的區(qū)分是什么,平常你如何進(jìn)展選擇?DictionaryTKey,TValue是做什么的?.NETBCL中還有哪些常用的容器?它們分別是如何實(shí)現(xiàn)的(哪種數(shù)據(jù)構(gòu)造)?分別是適用于哪些場景?
01.ListTarrylist的泛型版本,大小是可變的,T[]繼承自Array,大小是固定的。假如大小沒有怎么變化,選擇T[],一般狀況下選擇ListT
02.Dictionary是hashtable的泛型版本,用來存儲鍵值對的.例如:sortlist,stack等
3.抽象類和接口有什么區(qū)分?使用時(shí)有什么需要留意的嗎?
如何選擇是定義一個(gè)“完全抽象”的抽象類,還是接口?什么是接口的“顯式實(shí)現(xiàn)”?為什么說它很重要?
一樣點(diǎn):都不能被直接實(shí)例化,都通過繼承實(shí)現(xiàn)其抽象方法
不同點(diǎn):
(1)接口支持多繼承;抽象類不能實(shí)現(xiàn)多繼承。
(2)接口只能定義行為;抽象類既可以定義行為,還可能供應(yīng)實(shí)現(xiàn)。
(3)抽象類允許包含實(shí)現(xiàn)的virtual成員,所以能為派生類成員供應(yīng)一個(gè)默認(rèn)的實(shí)現(xiàn),而接口全部的成員自動(dòng)成為virtual成員,而且不能包含任何實(shí)現(xiàn)
4.字符串是引用類型類型還是構(gòu)造類型?引用類型
它和一般的引用類型相比有什么特殊的地方嗎?不行變的
使用字符串時(shí)有什么需要留意的地方?為什么說StringBuilder比擬高效?
當(dāng)拼接兩個(gè)字符串時(shí),系統(tǒng)先是把兩個(gè)字符串寫入內(nèi)存,接著刪除原來的String對象,然后創(chuàng)立一個(gè)String對象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對象。這一來二去的,耗了不少時(shí)間。而使用System.Text命名空間下面的StringBuilder類就不是這樣了,它供應(yīng)的Append方法,能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆維吾爾醫(yī)學(xué)??茖W(xué)校《三維動(dòng)畫造型藝術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧理工職業(yè)大學(xué)《專業(yè)英語(電子)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東省菏澤市23校聯(lián)考2025屆高三3月摸底考試綜合試題含解析
- 2025年內(nèi)蒙古自治區(qū)包頭市東河區(qū)第二中學(xué)初三第二次模擬化學(xué)試題試卷含解析
- 川北醫(yī)學(xué)院《腫瘤與姑息護(hù)理》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海海事大學(xué)《健美操運(yùn)動(dòng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 海洋能發(fā)電站綠色施工技術(shù)規(guī)范考核試卷
- 毛皮制品加工企業(yè)生產(chǎn)管理考核試卷
- 森林資源循環(huán)經(jīng)濟(jì)與綠色發(fā)展考核試卷
- 充電樁維護(hù)與故障排除考核試卷
- 醫(yī)務(wù)人員的肺結(jié)核防護(hù)指南與培訓(xùn)
- 二手乘用車出口檢驗(yàn)規(guī)范
- 室分系統(tǒng)培訓(xùn)材料
- 人教版高中英語選修《計(jì)算機(jī)英語》全冊課件
- 眼鏡各部件英語知識點(diǎn)梳理匯總
- 2023年江西省?;栉幕糜伟l(fā)展有限責(zé)任公司招聘筆試題庫含答案解析
- 安全風(fēng)險(xiǎn)告知卡(一般吊裝作業(yè))
- YS/T 682-2008釕粉
- GB/T 902.3-2008儲能焊用焊接螺柱
- GB/T 18612-2011原油有機(jī)氯含量的測定
- 九年級化學(xué)第二次模擬考試質(zhì)量分析析中考化學(xué)試卷分析
評論
0/150
提交評論