第五期高級(jí)coursespecial-面試寶典軟謀2016年版_第1頁
第五期高級(jí)coursespecial-面試寶典軟謀2016年版_第2頁
第五期高級(jí)coursespecial-面試寶典軟謀2016年版_第3頁
第五期高級(jí)coursespecial-面試寶典軟謀2016年版_第4頁
第五期高級(jí)coursespecial-面試寶典軟謀2016年版_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

.NET軟件工程師面試寶典(軟謀教育2016年版大部分來自于學(xué)員從面試現(xiàn)場帶回來的真實(shí)筆試面試題,涵蓋了主流的.NET筆試面試題,JAVA培訓(xùn),WEB前端培訓(xùn),官網(wǎng)地址: 1、簡述private、protected、public、internal修飾符的權(quán)限private:私有成員,在類的內(nèi)部才可以。protected:保護(hù)成員,該類內(nèi)部和繼承類中可以。public:公共成員,完全公開,沒有限制。internal:當(dāng)前程序集內(nèi)可以。改刪除數(shù)據(jù)等指令以及調(diào)用存在數(shù)據(jù)庫中的過程等這個(gè)對(duì)象是架構(gòu)在Connection對(duì)象上,也就是Command對(duì)象是透過連接到數(shù)據(jù)源。DataAdapter:主要是在數(shù)據(jù)源以及DataSet之間執(zhí)行數(shù)據(jù)傳輸?shù)墓ぷ?,它可以透過Command對(duì)象下達(dá)命令后,并將取得的數(shù)據(jù)放入DataSet對(duì)象中。這個(gè)對(duì)象是架構(gòu)在Command對(duì)象上,并提供了許多配合DataSet使用的功能。(Cache留起來,甚至可以將整個(gè)數(shù)據(jù)庫顯示出來,DataSet是放在內(nèi)存中的。DataSet的能力不只是可以多個(gè)Table而已還可以透過DataAdapter對(duì)象取得一些例如主鍵等的數(shù)據(jù)DataSetADO.NET中重量級(jí)的對(duì)象,這個(gè)對(duì)象架構(gòu)在DataAdapter將DataAdapter對(duì)象當(dāng)做DataSet對(duì)象以及數(shù)據(jù)源間傳輸數(shù)據(jù)的橋梁。DataSet包含若干DataTable、DataTableTable包含若干DataRow。DataReader:當(dāng)我們只需要循序的數(shù)據(jù)而不需要其它操作時(shí),可以使用DataReader據(jù),而且這些數(shù)據(jù)是只讀的,并不允許作其它的操作。因?yàn)镈ataReader在數(shù)據(jù)的時(shí)DataReaderADO.NET使用ConnectionCommand或DataAdapterSQLDataReader或DataAdapter的DataReader或DataAdapter對(duì)象操作數(shù)據(jù)結(jié)果。使用QueryString,如?id=1;responseSession式實(shí)現(xiàn)的事件)和(標(biāo)準(zhǔn)的event方式實(shí)現(xiàn))事件的區(qū)別。事件的內(nèi)部是用委托實(shí)現(xiàn)的。=,remove個(gè)private的委托和add、remove兩個(gè)方法面試聊:用ReflectorNetOverride是進(jìn)行基類中函數(shù)的重寫。Override參數(shù)的個(gè)數(shù)和類型都是任意的。加分的補(bǔ)充回答:用reflector內(nèi)部本質(zhì)上就是set_item、get_item方法。publicstringthis[stringsget、setgetset7publicsetget取出來的值一定是set進(jìn)去的值嗎?,這樣的設(shè)置。雖然一般情況下get的值就是set設(shè)置的值,但是可以讓get的值不是set設(shè)置的值的的例子。PublicAge{get{return100;}set{}}。加分的補(bǔ)充回答:用reflector反編譯可以看出,屬性內(nèi)部本質(zhì)上就是set_***、get_***方法,{publicint{{}{}}}

returnp1= p1.Age=30;1、手寫三層架構(gòu)2、手寫冒泡排序3、手寫AJAX:XMLHttpRequest4、手寫增刪改查、SQLHelper(UI(BLL(DAL(UI:(BLL(DAL垂直的關(guān)系。三層結(jié)構(gòu)是N層結(jié)構(gòu)的一種,一般來說,層次之間是向下依賴的,下層代碼優(yōu)點(diǎn):分工明確,條理清晰,易于調(diào)試,而且具有可擴(kuò)展性。缺點(diǎn):增加成本。)?Object是類型但是它的子類Int32竟然不能去Object能去“要求必須是類型”的地方,了繼承的原則,所以需要把Int32裝在Object中才能傳遞。裝箱:從值類型接口轉(zhuǎn)換到類型。objectobj=null;//類obj=1;//裝箱,boxing。把值類型包裝為類型inti1int)obj;//拆箱。2)inboxingunboxingintobjectobj=i;intj=obj;分析:在inboxing(裝箱)時(shí)是不需要顯式的類型轉(zhuǎn)換的,不過unboxing(拆箱)3intj=NETCTS(CommonTypeSystem)。CTS序和使用這些類型時(shí)必須遵循的規(guī)則而存在的通用類型系統(tǒng)。.Net將整個(gè)系統(tǒng)的類型分成兩大類:值類型和類型。CTS中的所有東西都是對(duì)象;所有的對(duì)象都源自一個(gè)基類——System.Object類型。值類型的一個(gè)最大的特點(diǎn)是它們不能為null,值類型的變量總有一個(gè)值。為了解決值類型不可以為null,類型可以為null的問題,微軟在.Net中引入了裝箱和拆箱:裝箱就是將值類型用類型包裝起來轉(zhuǎn)換為類型而從類型中拿到被包裝的值類型數(shù)據(jù)進(jìn)行拆箱。10、CTS、CLS、CLR分別作何解釋(*)把英文全稱背過來。生成.Net平臺(tái)的二進(jìn)制代碼。所以C#只是提供了if、while、+-*/、定義類、int、stringConvert.ToInt32、FileStream、SqlConnection、String.Split于.Net的東西。深藍(lán)色是C#的,淺藍(lán)色是.Net的。C#Cstring→.Net類型的差別:.netInt32CintVB.NetInteger。String、Int32語法的差別:IL中創(chuàng)建一個(gè)對(duì)象的方法是L_0001:newobjinstancevoid索引.C1::.ctor()C#中是newC1();VB.net中是Dimc1AsNewC1對(duì)應(yīng)的.NetCLS:CommonLanguageSpecification通用語言規(guī)范。不同語言語法的不同。每種語言都有自己的語法,.NetCLSNetCLR:CommonLanguageRuntime公共語言運(yùn)行時(shí),就是GC、JITCLR(Mono動(dòng)機(jī),負(fù)責(zé)執(zhí)行IL。、在13、能用foreach遍歷的對(duì)象的要14、GCC/C++中由程序員進(jìn)行對(duì)象的回收像學(xué)校中由學(xué)生收盤子,.Net中由GC進(jìn)行回Collection自動(dòng)進(jìn)行管理。GCGC用Dispose進(jìn)行資源的回收。要請(qǐng)求收集,可以調(diào)用下面的方法:GC.Collect()一般不需要手動(dòng)調(diào)用GC.Collect()。objectobjnewobject();//只有new objectobj2=obj;obj=null;obj2=null; 值類型不可能包含null值:然而,可空類型功能允許將null賦給值類型。 class和interface有什么區(qū)別19、int、DateTime、string是否可以為null表示“不知道,而不是“沒有。沒有和不知道是不一樣。數(shù)據(jù)庫中null不能用0表示。0歲和不知道多少歲不一樣。Sexiszero//inti1=//inti2null;//值類型后加?就成了可空數(shù)據(jù)類////inti3i2//inti4int)i2;//可以顯式轉(zhuǎn)換,由程序員來//inti5i4//intint關(guān)系的Nullable型Nullable<int>d1=newNullable<int>();//int?d1=null;Nullable<int>d2=newNullable<int>(3);//int?d2=3; int、DateTimeStructnull,只有類型才能被賦值null。string可以為i1=3;int?i2=i1;//inti3i2;//不能把可能為空的賦值給一定不能為空的變inti3int)i2int?翻譯生成.Net的Nullable<int>,CTS的類在usingusingDispose的補(bǔ)充回答:using其實(shí)等價(jià)于try……finally,用起來更方便。21、XML與HTML的主要區(qū)別HTML/p>或者</li>之類的結(jié)束標(biāo)記。在XML中,絕對(duì)不能省略掉結(jié)束標(biāo)記。HTML:<imgsrc="1.jpg"><br><br>XML:<imgsrc="1.jpg"></img><br/><br/>XML這樣分析器就知道不用查找結(jié)束標(biāo)記了。22、stringstrnull與stringstr答:stringstr=nullstringstr=\"\"給它分配長度為空字符stringstrnullstringstringstrstrings3string.Empty;//反編譯發(fā)現(xiàn),string.EmptyEmpty為主鍵,注意:ID可能不是連續(xù)的。答:1selecttop10*fromAwhereidnotinselecttop30idfrom1)selecttop30idfromT_FilterWords--取前條2)select*fromT_FilterWordswhereidnotinselecttop30idfromT_FilterWordsid等3)selecttop10*fromwhereidnotin(selecttop30idfrom條2selecttop10*fromAwhereidselectmax(idfrom(selecttop30idfromAasASP.NET中通過ASPXCSweb用再像以前asp那樣都代碼和html代碼混在一起,難以。code-Behind是基于部分a,解讀:接口中不能字段只能方法,屬性、索引器和事件最終都編譯生成方法。因27、在ADO.NET中,對(duì)于Command對(duì)象的ExecuteNonQuery()方法和(c拿SQLHelper實(shí)現(xiàn)一下。28、StringBuilder和String的區(qū)別?答:String在進(jìn)行運(yùn)算時(shí)(如賦值、拼接等)會(huì)產(chǎn)生一個(gè)新的實(shí)例,而StringBuilder則StringBuilder,不要使用StringStringStringBuilder工作原理不同:String類是一種傳統(tǒng)的修改字符串的方式,它確實(shí)可以完成把一個(gè)字符串添取內(nèi)存中的數(shù)據(jù)賦給該對(duì)象。這一來二去的,耗了不少時(shí)間。而使用System.Text命名空StringBuilderString通過簡單名稱或成員來。通過元素來??梢詾殪o態(tài)成員或?qū)嵗蓡T。必須為實(shí)例成員。屬性的get器沒有參數(shù)。索引器的get器具有與索引器相同的形參表。屬性的set器包含隱式value參數(shù)。除了value參數(shù)外,索引器的set30ASP。NET中的web如一個(gè)頁面Tst1.aspx的頁面如下<%@Pagelanguage="c#"Codebehind="Tst1.aspx.cs"AutoEventWireup="false"Inherits="T1.Tst1"%>32、DataReader和DataSetDataReader使用時(shí)始終占用SqlConnection,操作數(shù)據(jù)庫是只進(jìn)的、只讀的DataSet則是將數(shù)據(jù)加載在內(nèi)存中.拋棄數(shù)據(jù)庫連接..完畢即放棄數(shù)據(jù)庫連接(非DataSetDataReader動(dòng)態(tài)的添加行,列,數(shù)據(jù).對(duì)數(shù)據(jù)庫進(jìn)行回傳更新操作(動(dòng)態(tài)操作讀入到內(nèi)存的數(shù)據(jù))33、publicstaticconst A=1;這段代碼有錯(cuò)誤么類之間不支持,接口之間支持。類對(duì)接口叫做實(shí)現(xiàn),不叫繼承。類是爹、接口是能力,能URLQueryStringurlencode編碼用urldecode的區(qū)別兒來的,所以它的地址欄中還是原來的地址。這個(gè)過程中瀏覽器和Web服務(wù)器之間經(jīng)過Response.Redirect地址,一般來說瀏覽器會(huì)用剛才請(qǐng)求的所有參數(shù)重新請(qǐng)求。這個(gè)過程中瀏覽器和WebServer.Transfer不可以轉(zhuǎn)向外部,而Response.Redirect可以。40、不是說字符串是不可變的嗎?strings="abc";s="123"不就是變了嗎?StringsStringabc",然后我們s123",ss向原來那個(gè)對(duì)象了,而指向了另一個(gè)String對(duì)象,內(nèi)容為"123",原來那個(gè)對(duì)象還存在于內(nèi)存之中,只是s這個(gè)變量不再指向它了。個(gè)static方法被調(diào)用時(shí),可能還沒有創(chuàng)建任何實(shí)例對(duì)象,如果從一個(gè)static方法中發(fā)出對(duì)非static方法的調(diào)用,那個(gè)非static方法是關(guān)聯(lián)到哪個(gè)對(duì)象上的呢?這個(gè)邏輯無法成立,所以,一個(gè)static方法內(nèi)部不能發(fā)出對(duì)非static方法的調(diào)用。要讓人家感覺你對(duì).Net 說出幾個(gè)開源軟件?MySQLLinuxDiscuzApachePaint.NetAndroidChrome、 Toolkit、AJAXtoolkit、public{privatepublicreadonlystaticFileManagerInstance=new}擴(kuò)展:搜 Singleton,44sql注入?如何避免sql用戶根據(jù)系統(tǒng)的程序構(gòu)造的參數(shù)從而導(dǎo)致程序執(zhí)行不是程序員期望的SQL語句。使用參數(shù)化的SQL就可以避免SQL注入。ppt。舉例子,擺事實(shí)!1'or1=1第三范式:滿足第二范式并且表其他的表必須通過主鍵。使用getpostget2k),受限于網(wǎng)頁postget參考閱讀 之間的關(guān)系是什么?編程語言調(diào)用,.NetFramework還提供了CLR、JIT、GC等基礎(chǔ)功能。AS.Net邏輯代碼通常通過Code-behind的方式用C#、VB.Net等支持.Net的語言編寫。C#是使用最廣泛的支持.Net的編程語言。除了C#還有VB.Net、IronPython等。(IDE可以簡化很多工作,不用程序員直接調(diào)用csc.exe等命令行進(jìn)行程序的編譯,而且VisualStudio提供了代碼自動(dòng)完成、代碼等功能方便開發(fā)。除了VisualStudio,還有SharpDevelop、MonoDevelopIDE,VisualStudioExpress48AJAXAJAX?AJAX了AJAX?答:AJAXHTMLAJAXJavascriptXMLHttpRequestHttpUpdateanel需求則可以使用JQuery提供的ajax功能。AJAX最重要的問題是無法跨域請(qǐng)求( 據(jù)項(xiàng)目中都用到了AJAX。程序。如果面試的時(shí)候談AJAX談到UpdatePanelNBUpdatePanel的原理!引出為什么DomUpdatePanelCKEditorUpdatePanel中提交以后也變成了textareaFileuploadUpdatepanelUpdatePanel理苦命呀!還是MVC好呀,MVC49、Application 和Session兩種會(huì)話有什么不同 據(jù);Session是保存在服務(wù)器端的,比較安全,可以放大數(shù)據(jù)。談到Session的時(shí)候就侃Session和 中的SessionId。和別人對(duì) 、csdn、codeplex、codeproject、msdn文檔、msdn論 51、你對(duì).netGC對(duì)象沒有任何的時(shí)候就可以被回收了一個(gè)對(duì)象可以被回收并不意味著一定會(huì)被立即回收,GC會(huì)選擇時(shí)機(jī)進(jìn)行回收??梢哉{(diào)用GC.Collect()讓GC立即回收。GC不能回收非托管資源,對(duì)于非托管資源一般都實(shí)現(xiàn)了IDisposable接口,然后使用using關(guān)鍵字進(jìn)行資301(永久重定向、302:重定向404:頁面不存在IIS這樣用戶就要重新登錄或者重新添加購物車等放到Session中的信息可以用Stateserver或SQLServer數(shù)據(jù)庫的方式Session不過這種方式比較慢,而且無法捕獲Bug方式Session的缺陷,缺陷是和Bug不一樣的,In-Proc方式Session會(huì)由服務(wù)Session,ByDesign,In-Proc用StateServer和數(shù)據(jù)庫的方式。定分為:Eval:單向綁定和Bind:雙向綁定。度。Lucene.NetApplication_Error。通過HttpContext.Current.Server.GetLastError()、HttpContext.Current.Error;拿到未捕捉異常,記錄到Log4Net日志中。L、NPOI、JQuery、ASP.NetAJAX MVC。在CodePlex、SourceForge等上有的開源項(xiàng)目等。int[]values={3,5,9,8,10,5,3};HashSet<int>set=newHashSet<int>();foreach(intiinvalues){} 就是非聚簇索引。這樣查詢“G到M的漢字”就非??欤樵儭?劃到8劃的字”則慢。SQLServer其他值也落在這個(gè)范圍內(nèi)。舉一個(gè)例子,一個(gè)應(yīng)用程序要查找首字母位于G和P之間的姓名列表,SQLServerGP進(jìn)行大量數(shù)據(jù)改動(dòng)的表不適宜用聚簇索引因?yàn)镾QLServer將不得不在表中行的次序。10,創(chuàng)建聚簇索引就不是個(gè)好主意。如為你排好序了。如果一個(gè)表并使用BETWEEN、<、>、>=或<=操作符來返回一個(gè)范63VS用類似editplusCSC.exe來編譯.csSQL耗時(shí)可以使用緩存。頁面中的內(nèi)容可以按需加載(比如說可以像verycd的評(píng)論那樣當(dāng),體積過于臃腫,則優(yōu)化HTML代碼,去掉無用的,壓縮JS、CSS,可以用CSSSpirit網(wǎng)絡(luò)、地區(qū)部署服務(wù)器,然后使用CDN技術(shù)加速。一些代碼用過程進(jìn)行重寫(當(dāng)一個(gè)邏輯有多行SQL要執(zhí)行的時(shí)候用過程可以優(yōu)化速度,可以避免客戶端和SQLServer之間多次交互;ASP.NETHttpRuntime.Cache自定義緩存策略。如果需要用多臺(tái)Web服務(wù)器作為一個(gè)集群來承載的情況,則可以部署專門的分布式緩存服務(wù)器,比如MemcachedHTTPUrlReferrer在Application_BeginRequest(Response.End();68、refoutRef和Out2CRefOut則不要要,對(duì)OutRef和OutRefOutOutReturnRef調(diào)出使用者的的時(shí)候。1MVCurlRouting的作用是將瀏覽器的URL到特定的MVC控制器動(dòng)作。2、當(dāng)我們這個(gè)地址的時(shí)候,請(qǐng)求首先UrlRoutingModule截獲,截獲請(qǐng)求后,從Routes中得到與當(dāng)前請(qǐng)求URL相符合的RouteData對(duì)象,將RouteData對(duì)象和當(dāng)前URL封裝成一個(gè)Req ontext對(duì)象,然后從Req ontext封裝的RouteData中得到Controller名字根據(jù)Controller的名字,BSCSBSMVC5.0CS客戶端是Winform服務(wù)端使用WebApi統(tǒng)一提供服務(wù)接口,考慮以后可能還要擴(kuò)展端,所以服務(wù)接口的參數(shù)和返回值使用通用的Json格式來傳遞數(shù)據(jù)。態(tài)注入進(jìn)去。MEF就是實(shí)現(xiàn)依賴注入的一種組件。它的使用使得UI層不直接依賴于BLL層,而是依賴于中間的一個(gè)IBLLMEF動(dòng)態(tài)將BLL里面的實(shí)UI限驗(yàn)證日志記錄等通用功能使用了AOP的機(jī)制統(tǒng)一管理項(xiàng)目中使用的是Postsharp2、BSjquery+bootstrap的方式,所有頁面采用流式布局,能更好適

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論