技術(shù)類面試、筆試題匯總_第1頁
技術(shù)類面試、筆試題匯總_第2頁
技術(shù)類面試、筆試題匯總_第3頁
技術(shù)類面試、筆試題匯總_第4頁
技術(shù)類面試、筆試題匯總_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、技術(shù)類面試、筆試題匯總 下面的參考解答只是幫助大家理解,不用背,面試題、 筆試題千變?nèi)f化,不要夢想著把題覆蓋了,下面的題是供大 家查漏補(bǔ)缺用的,真正的把這些題搞懂了,才能“以不變應(yīng) 萬變”?;卮饐栴}的時(shí)候能聯(lián)系做過項(xiàng)目的例子是最好的, 有的問題后面我已經(jīng)補(bǔ)充聯(lián)系到項(xiàng)目中的對應(yīng)的案例了。 1、簡述 private 、 protected 、 public 、 internal修 飾符的訪問權(quán)限。 private : 私有成員 , 在類的內(nèi)部才可以訪問。 protected : 保護(hù)成員, 該類內(nèi)部和繼承類中可以訪問。 public : 公共成員,完全公開,沒有訪問限制。 internal: 當(dāng)前

2、程序集內(nèi)可以訪問。 2、中的五個(gè)主要對象 Connection :主要是開啟程序和數(shù)據(jù)庫之間的連接。沒 有利用連接對象將數(shù)據(jù)庫打開,是無法從數(shù)據(jù)庫中取得數(shù)據(jù) 的。 Close 和 Dispose 的區(qū)別, Close 以后還可以 Open, Dispose 以后則不能再用。 Comman:d 主要可以用來對數(shù)據(jù)庫發(fā)出一些指令,例如 可以對數(shù)據(jù)庫下達(dá)查詢、新增、修改、刪除數(shù)據(jù)等指令,以 及調(diào)用存在數(shù)據(jù)庫中的存儲過程等。這個(gè)對象是架構(gòu)在 Connection 對象上,也就是 Command對象是透過連接到數(shù) 據(jù)源。 DataAdapter :主要是在數(shù)據(jù)源以及 DataSet 之間執(zhí)行 數(shù)據(jù)傳輸?shù)?/p>

3、工作,它可以透過Commanc對象下達(dá)命令后,并 將取得的數(shù)據(jù)放入 DataSet 對象中。這個(gè)對象是架構(gòu)在 Command寸象上,并提供了許多配合DataSet使用的功能。 DataSet :這個(gè)對象可以視為一個(gè)暫存區(qū) (Cache) ,可以 把從數(shù)據(jù)庫中所查詢到的數(shù)據(jù)保留起來,甚至可以將整個(gè)數(shù) 據(jù)庫顯示出來, DataSet 是放在內(nèi)存中的。 DataSet 的能力 不只是可以儲存多個(gè) Table 而已,還可以透過 DataAcapter 寸象取得一些例如主鍵等的數(shù)據(jù)表結(jié)構(gòu),并可以記錄數(shù)據(jù)表 間的關(guān)聯(lián)。 DataSet 寸象可以說是 中重量級的寸象,這個(gè) 寸象架構(gòu)在 DataAcapter

4、 寸象上,本身不具備和數(shù)據(jù)源溝通 的能力 ; 也就是說我們是將 DataAcapter 寸象當(dāng)做 DataSet 寸象以及數(shù)據(jù)源間傳輸數(shù)據(jù)的橋梁。DataSet 包含若干 DataTable 、 DataTableTable 包含若干 DataRow。 DataReacer :當(dāng)我們只需要循序的讀取數(shù)據(jù)而不需要其 它操作時(shí),可以使用 DataReacer 寸象。 DataReacer 寸象只 是一次一筆向下循序的讀取數(shù)據(jù)源中的數(shù)據(jù),這些數(shù)據(jù)是存 在數(shù)據(jù)庫服務(wù)器中的,而不是一次性加載到程序的內(nèi)存中的, 只能(通過游標(biāo) ) 讀取當(dāng)前行的數(shù)據(jù),而且這些數(shù)據(jù)是只讀的, 并不允許作其它的操作。因?yàn)?Da

5、taReacer 在讀取數(shù)據(jù)的時(shí) 候限制了每次只讀取一筆,而且只能只讀,所以使用起來不 但節(jié)省資源而且效率很好。使用 DataReacer 寸象除了效率 較好之外,因?yàn)椴挥冒褦?shù)據(jù)全部傳回,故可以降低網(wǎng)絡(luò)的負(fù) 載。 使用Connection對象來連接數(shù)據(jù)庫,使用Command或 DataAdapter對象來執(zhí)行SQL語句,并將執(zhí)行的結(jié)果返回給 DataReader 或 DataAdapter , 然 后 再 使 用 取 得 的 DataReader 或 DataAdapter 對象操作數(shù)據(jù)結(jié)果。 3、列舉 頁面之間傳遞值的幾種方式。 1. 使 用 QueryString, 如 ?id=1; re

6、sponse. Redirect() 2. 使用 Session 變量 3. 使用 傳值 傳值 和的區(qū)別:是服務(wù)器內(nèi)部的轉(zhuǎn)接,瀏覽器不知曉 ; 是有 瀏覽器參與的,所以在地址欄中可以看到地址的變化。 4. C#中的委托是什么?事件是不是一種委托 ?事件和委 托的關(guān)系。 委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。 委托可以理解為指向一個(gè)函數(shù)的指針。 委托和事件沒有可比性, 因?yàn)槲惺穷愋停?事件是對象, 下面說的是委托的對象 (用委托方式實(shí)現(xiàn)的事件 ) 和(標(biāo)準(zhǔn)的 event 方式實(shí)現(xiàn) ) 事件的區(qū)別。事件的內(nèi)部是用委托實(shí)現(xiàn)的。 因?yàn)閷τ谑录碇v, 外部只能 “注冊自己 +=、注銷自己 -=”,

7、 外界不可以注銷其他的注冊者,外界不可以主動觸發(fā)事件, 因此如果用 Delegate 就沒法進(jìn)行上面的控制,因此誕生了 事件這種語法。事件是用來閹割委托實(shí)例的,類比用一個(gè)自 定義類閹割 List 。事件只能 add、 remove 自己,不能賦值。 事件只能 +=、-= ,不能 = 。加分的補(bǔ)充回答:事件內(nèi)部就是 一個(gè) private 的委托和 add、 remove 兩個(gè)方法。 面試聊: 用 Reflector 查看 .Net 的類的內(nèi)部實(shí)現(xiàn), 解決 問題。 5、override 與重載 (overload) 的區(qū)別 重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多 次重載以適應(yīng)不同的需要。

8、重載 (overload) 是面向過程的概 念。 Override 是進(jìn)行基類中函數(shù)的重寫。 Override 是面向 對象的概念 6、C#中索引器是否只能根據(jù)數(shù)字進(jìn)行索引?是否允許多 個(gè)索引器參數(shù) ? 參數(shù)的個(gè)數(shù)和類型都是任意的。加分的補(bǔ)充回答:用 reflector 反編譯可以看出,索引器的內(nèi)部本質(zhì)上就是 set_item 、 get_item 方法。加分的補(bǔ)充回答:回答傳智播 客.net培訓(xùn)中講解設(shè)計(jì)模式中開發(fā)的Settingsprovider 就 是用的 string 類型的參數(shù)名做索引器參數(shù)。 7、屬性和 public 字段的區(qū)別是什么 ?調(diào)用 set 方法為 一個(gè)屬性設(shè)值,然后用

9、get 方法讀取出來的值一定是 set 進(jìn) 去的值嗎 ? 屬性可以對設(shè)值、取值的過程進(jìn)行非法值控制,比如年 齡禁止設(shè)值負(fù)數(shù),而字段則不能進(jìn)行這樣的設(shè)置。雖然一般 情況下 get 讀取的值就是 set 設(shè)置的值,但是可以讓 get 讀 取的值不是set設(shè)置的值的,極端的例子。public Agegetreturn 100;set。 加 分 的 補(bǔ) 充 回 答 : 用 reflector 反編譯可以看出, 屬性內(nèi)部本質(zhì)上就是 set_* 、 get_* 方法,詳細(xì)參考傳智播客 .net 培訓(xùn)視頻中串講 .net 基礎(chǔ)的部分。 class person public int Age get retu

10、rn 3; set person p1 = new person(); = 30; +; ();/ 輸出 3 8、三層架構(gòu) 通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表 現(xiàn)層(Ul)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。 區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。 表現(xiàn)層 (Ul) :通俗講就是展現(xiàn)給用戶的界面,即用戶在 使用一個(gè)系統(tǒng)的時(shí)候的所見所得。 業(yè)務(wù)邏輯層 (BLL) :針對具體問題的操作,也可以說是 對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務(wù)邏輯處理。 數(shù)據(jù)訪問層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫,針 對數(shù)據(jù)的增添、刪除、修改、更新、查找等每層之間是一種 垂直的關(guān)系。 三層結(jié)構(gòu)是

11、 N 層結(jié)構(gòu)的一種,一般來說,層次之間是向 下依賴的,下層代碼未確定其接口 (契約)前,上層代碼是無 法開發(fā)的,下層代碼接口 (契約)的變化將使上層的代碼一起 變化。 優(yōu)點(diǎn): 分工明確,條理清晰,易于調(diào)試,而且具有可 擴(kuò)展性。 缺點(diǎn): 增加成本。 9、MVC模式(*) MVC(Model View Controller) 模型-視圖-控制器 aspx 就是 View,視圖;Model : DataSet、Reader、對 象Controller: cs 代碼。 MVC是典型的平行關(guān)系,沒有說誰在上誰在下的關(guān)系, 模型負(fù)責(zé)業(yè)務(wù)領(lǐng)域的事情,視圖負(fù)責(zé)顯示的事情,控制器把 數(shù)據(jù)讀取出來填充模型后把模型

12、交給視圖去處理。而各種驗(yàn) 證什么的應(yīng)該是在模型里處理了。它強(qiáng)制性的使應(yīng)用程序的 輸入、處理和輸出分開。MVC最大的好處是將邏輯和頁面分 離。 10、什么是裝箱 (boxing) 和拆箱 (unboxing)? (*) 裝箱:從值類型接口轉(zhuǎn)換到引用類型。 拆箱:從引用類型轉(zhuǎn)換到值類型。 object obj = null;/引用類型 obj = 1;/ 裝箱, boxing 。把值類型包裝為引用類型。 int i1 = (int)obj;/拆箱。 unboxing 11、什么叫應(yīng)用程序域 (AppDomain) (*) 一種邊界,它由公共語言運(yùn)行庫圍繞同一應(yīng)用程序范圍 內(nèi)創(chuàng)建的對象建立 (即,從

13、應(yīng)用程序入口點(diǎn)開始,沿著對象 激活的序列的任何位置 ) 應(yīng)用程序域有助于將在一個(gè)應(yīng)用程序中創(chuàng)建的對象與 在其他應(yīng)用程序中創(chuàng)建的對象隔離,以使運(yùn)行時(shí)行為可以預(yù) 知。 在一個(gè)單獨(dú)的進(jìn)程中可以存在多個(gè)應(yīng)用程序域。應(yīng)用程 序域可以理解為一種輕量級進(jìn)程。起到安全的作用。占用資 源小。 12、CTS CLS CLR分別作何解釋(*) CTS:CommonType System 通用系統(tǒng)類型。 Int32 、Int16 tint 、String string 、Boolean bool CLS:CommonLanguage Specification通用語言規(guī)范。 不同語言語法的不同。 CLR:Common

14、 Language Runtime 公共語言運(yùn)行時(shí),就 是.Net提供的那些類。 13、在dotnet中類(class) 與結(jié)構(gòu)(struct) 的異同? Class 可以被實(shí)例化 ,屬于引用類型 , 是分配在內(nèi)存的堆 上的。類是引用傳遞的。 Struct 屬于值類型 , 是分配在內(nèi)存的棧上的。結(jié)構(gòu)體是 復(fù)制傳遞的。加分的回答:Int32 Boolean等都屬于結(jié)構(gòu)體。 14 、堆和棧的區(qū)別 ? 棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必 須就棧的大小有明確的定義 ; 局部值類型變量、值類型參數(shù) 等都在棧內(nèi)存中。 堆是程序運(yùn)行期間動態(tài)分配的內(nèi)存空間,你可以根據(jù)程 序的運(yùn)行情況確定要分配的堆內(nèi)存的大小。 15 、能用 foreach 遍歷訪問的對象的要求 需要實(shí)現(xiàn) IEnumerable 接口或聲明 GetEnumerator 方法 的類型。 16、GC是什么?為什么要有 GC? GC是垃圾收集器。程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔?收集器會自動進(jìn)行管理。 GC 只能處理托管內(nèi)存資源的釋放, 對于非托管資源則不能使用GC進(jìn)行回收,必須由程序員手 工回收,一個(gè)例子就是 FileStream 或者 SqlConnection 需 要程序員調(diào)用 Dispose 進(jìn)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論