2023年面試問答大匯總_第1頁
2023年面試問答大匯總_第2頁
2023年面試問答大匯總_第3頁
2023年面試問答大匯總_第4頁
2023年面試問答大匯總_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

HYPERLINK"".net面試問答(大匯總)用.net做B/S結構的系統(tǒng),您是用幾層結構來開發(fā),每一層之間的關系以及為什么要這樣分層??答:從下至上分別為:數據訪問層、業(yè)務邏輯層(又或成為領域層)、表達層

數據訪問層:有時候也稱為是持久層,其功能重要是負責數據庫的訪問

業(yè)務邏輯層:是整個系統(tǒng)的核心,它與這個系統(tǒng)的業(yè)務(領域)有關

表達層:是系統(tǒng)的UI部分,負責使用者與整個系統(tǒng)的交互。

優(yōu)點:

分工明確,條理清楚,易于調試,并且具有可擴展性。

缺陷:

增長成本。分層式結構究竟其優(yōu)勢何在??1、開發(fā)人員可以只關注整個結構中的其中某一層;

2、可以很容易的用新的實現來替換原有層次的實現;

3、可以減少層與層之間的依賴;

4、有助于標準化;

5、利于各層邏輯的復用。

概括來說,分層式設計可以達至如下目的:分散關注、松散耦合、邏輯復用、標準定義。分層式結構也不可避免具有一些缺陷:

1、減少了系統(tǒng)的性能。這是不言而喻的。假如不采用分層式結構,很多業(yè)務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完畢。

2、有時會導致級聯的修改。這種修改特別體現在自上而下的方向。假如在表達層中需要增長一個功能,為保證其設計符合分層式結構,也許需要在相應的業(yè)務邏輯層和數據訪問層中都增長相應的代碼。MVC模式MVC(Model-View-Controller)把交互系統(tǒng)的組成分解成模型、視圖、控制器三種部件mvc的優(yōu)點:1.通過把項目提成modelview和controller,使得復雜項目更加容易維護。2.沒有使用viewstat(yī)e和服務器表單控件,可以更方便的控制應用程序的行為3.應用程序通過controller來控制程序請求,可以提供豐富的url重寫。4.對單元測試的支持更加杰出5.在團隊開發(fā)模式下表現更杰出MVC的局限性:

(1)增長了系統(tǒng)結構和實現的復雜性。對于簡樸的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增長結構的復雜性,并也許產生過多的更新操作,減少運營效率。

?(2)視圖與控制器間的過于緊密的連接。視圖與控制器是互相分離,但的確聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。

(3)視圖對模型數據的低效率訪問。依據模型操作接口的不同,視圖也許需要多次調用才干獲得足夠的顯示數據。對未變化數據的不必要的頻繁訪問,也將損害操作性能。asp.net如何實現MVC模式,舉例說明!web/business/dataaccess

列舉ASP.NET頁面之間傳遞值的幾種方式。?1.使用QueryString,如....?id=1;response.Redirect()....

2.使用Session變量?3.使用Server.Transfer請說明在.net中常用的幾種頁面間傳遞參數的方法,并說出他們的優(yōu)缺陷。?QueryString

傳遞一個或多個安全性規(guī)定不高或是結構簡樸的數值。但是對于傳遞數組或對象的話,就不能用這個方法了?session(viewstate)簡樸,但易丟失作用于用戶個人,過量的存儲會導致服務器內存資源的耗盡。

application對象的作用范圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock

cookie簡樸,但也許不支持,也許被偽造Cookie是存放在客戶端的,而session是存放在服務器端的。并且Cookie的使用要配合ASP.NET內置對象Request來使用

inputttype="hidden"簡樸,也許被偽造?url參數簡樸,顯示于地址欄,長度有限?Server.Transfer

把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流

數據庫穩(wěn)定,安全,但性能相對弱

?什么是Viewstate?它有什么作用?ViewState用來保存頁面狀態(tài),就是說提交之后我們還可以看到文本框里面的內容就是ViewState保存的功勞。

ViewState只維護當前頁面的狀態(tài),不同頁面之間不能共享,Session可以。

ViewState你可以理解為一個隱藏控件。ASP.Net頁面生命周期

每個頁面的生命周期為用戶的每一次訪問,也就是說每一次客戶端與服務器之間的一個往返過程.全局變量的生命周期在此之間.1.Page_Init();

2.LoadViewStateandPostbackdata;?3.Page_Load();

4.Handlecontrolevents;

5.Page_PreRender();

6.Page_Render();

7.Unloadevent;?8.Disposemethodcalled;ADO.net中常用的對象有哪些?分別描述一下。?答:

Connection

打開數據庫連接?Command

執(zhí)行數據庫命令?DataAdapter

連接數據,執(zhí)行數據庫命令,填充DataSet

Dat(yī)aSet

數據在內存中的緩存,數據結構

DataReader

只讀向前的讀取數據庫Dat(yī)aReader和DataSet的異同?DataReader使用時始終占用SqlConnection,在線操作數據庫..任何對SqlConnection的操作都會引發(fā)DataReader的異常..由于DataReader每次只在內存中加載一條數據,所以占用的內存是很小的..由于DataReader的特殊性和高性能.所以DataReader是只進的..你讀了第一條后就不能再去讀取第一條了..?DataSet則是將數據一次性加載在內存中.拋棄數據庫連接..讀取完畢即放棄數據庫連接..由于DataSet將數據所有加載在內存中.所以比較消耗內存...但是確比DataReader要靈活..可以動態(tài)的添加行,列,數據.對數據庫進行回傳更新操作...

存儲過程和sql語句的優(yōu)缺陷優(yōu)點:

1.提高性能,減少網絡傳輸,節(jié)約時間。2.減少網絡流量

存儲過程位于服務器上,調用的時候只須傳遞存儲過程的名稱以及參數,不用每次訪問都傳遞很長的sql語句。4.安全性

減少sql注入式襲擊。5.可維護性高

更新存儲過程通常比更改、測試以及重新部署程序集需要較少的時間和精力。缺陷:1.交互性差。2.可移植性差

說出你所了解的數據庫訪問組件(例如ADO,至少4種)

答:ADO,ADO.Net,MDAC(MicrosoftDataAccessComponents),MicrosoftSQLServerOLEDBProvider,MicrosoftJetOLEDBProvider,DesktopDatabaseDriversODBCDriver,VisualFoxProODBCDriver什么是面向對象?萬物都是對象,其重要特性:封裝、繼承、多態(tài)如何實現多態(tài)

1.通過對象直接調用成員函數時,始終默認使用該對象的類的成員函數(除非用::顯示指定類名)。2.通過指向對象的指針或引用調用成員函數時:假如該函數是實函數,則調用該指針或引用的類的成員函數;假如該函數是虛函數,則調用該指針或引用指向的對象的類的成員函數。面向對象的思想重要涉及什么??答:任何事物都可以理解為對象,其重要特性:繼承。封裝。多態(tài)。特點:代碼好維護,安全,隱藏信息什么是裝箱和拆箱??答:從值類型接口轉換到引用類型裝箱。從引用類型轉換到值類型拆箱。裝箱(boxing)是將值類型的數據轉化成引用類型,inti=3;objecto=i;便是裝箱過程,而拆箱(unboxing)是將飲用類型數據轉換值類型,比如intj=(int)o;屬于拆箱?

什么是Interface?它與AbstractClass有什么區(qū)別?接口(Interface)是用來定義行為規(guī)范的,不會有具體實現,而抽象類除定義行為規(guī)范外,可以有部分實現,但一個類能實現多個接口,但只能繼承一個父類

什么時候使用抽象類,什么時候用接口?

接口用于規(guī)范,抽象類用于共性。接口中只能聲明方法,屬性,事件,索引器。而抽象類中可以有方法的實現,也可以定義非靜態(tài)的類變量。抽象類是類,所以只能被單繼承,但是接口卻可以一次實現多個。抽象類可以提供某些方法的部分實現,接口不可以.抽象類的實例是它的子類給出的。接口的實例是實現接口的類給出的。再抽象類中加入一個方法,那么它的子類就同時有了這個方法。而在接口中加入新的方法,那么實現它的類就要重新編寫(這就是為什么說接口是一個類的規(guī)范了)。接口成員被定義為公共的,但抽象類的成員也可以是私有的、受保護的、內部的或受保護的內部成員(其中受保護的內部成員只能在應用程序的代碼或派生類中訪問)。此外接口不能包含字段、構造函數、析構函數、靜態(tài)成員或常量。什么是抽象類(abstractclass)?

一種不可以被實例化的類。抽象類中一般具有抽象方法,當然也可有具體實現。繼承類只有實現過所有抽象類的抽象方法后才干被實例化。何時必須聲明一個類為抽象類?

當這個類中包含抽象方法時,或是該類并沒有完全實現父類的抽象方法時。接口(interface)是什么??只具有共有抽象方法(publicabstractmethod)的類。這些方法必須在子類中被實現。為什么不能指定接口中方法的修飾符?

接口中的方法用來定義對象之間通信的契約,指定接口中的方法為私有或保護沒故意義。他們默認為公有方法。可以繼承多個接口么?

當然。那么假如這些接口中有反復的方法名稱呢??這種情況中你可以決定如何實現。當然需要特別得小心。但是在編譯環(huán)節(jié)是沒有問題的。接口和抽象類的區(qū)別是什么??接口中所有方法必須是抽象的,并且不能指定方法的訪問修飾符。抽象類中可以有方法的實現,也可以指定方法的訪問修飾符。

詳述.NET里class和struct的異同!類是引用類型,可以繼承類、接口和被繼承,有默認的構造函數,有析構函數,可以使用abstract和sealed,有protected修飾符,必須使用new初始化。?結構是值類型,只能繼承接口,不能被繼承,沒有默認的構造函數,可以創(chuàng)建,沒有析構函數,不可以用abstract和sealed,沒有protected修飾符,可以不用new初始化。如何選擇結構還是類

1.堆棧的空間有限,對于大量的邏輯的對象,創(chuàng)建類要比創(chuàng)建結構好一些

2.結構表達如點、矩形和顏色這樣的輕量對象?例如,假如聲明一個具有1000個點對象的數組,則將為引用每個對象分派附加的內存。

在此情況下,結構的成本較低。?3.在表現抽象和多級別的對象層次時,類是最佳的選擇?4.大多數情況下該類型只是一些數據時,結構時最佳的選擇C#中的接口和類有什么異同。

異:?不能直接實例化接口。?接口不包含方法的實現。?接口、類和結構可從多個接口繼承。但是C#只支持單繼承:類只能從一個基類繼承實現。?類定義可在不同的源文獻之間進行拆分。

同:?接口、類和結構可從多個接口繼承。

接口類似于抽象基類:繼承接口的任何非抽象類型都必須實現接口的所有成員。?接口可以包含事件、索引器、方法和屬性。

一個類可以實現多個接口。

const和readonly有什么區(qū)別?

const關鍵字用來聲明編譯時常量,readonly用來聲明運營時常量。用sealed修飾的類有什么特點?sealed修飾符用于防止從所修飾的類派生出其它類。假如一個密封類被指定為其他類的基類,則會發(fā)生編譯時錯誤。?密封類不能同時為抽象類。?sealed修飾符重要用于防止非故意的派生,但是它還能促使某些運營時優(yōu)化。具體說來,由于密封類永遠不會有任何派生類,所以對密封類的實例的虛擬函數成員的調用可以轉換為非虛擬調用來解決。虛函數的用法

答:

1)virtual指明一成員函數為虛函數,而virtual僅用于類的定義里,在類外可不加此關鍵字.

2)一個類的成員函數被定義為虛函數時,子類該函數仍保持虛函數特性.?3)子類覆蓋此函數時,定義里可不加virtual關鍵字,但函數聲明要和基類的完全一致!且此聲明是必須的.

4)不是純虛函數時,父類的虛函數必須要實現;而若將父類的虛函數設定為純虛函數時,子類必需要覆蓋之并且必須要實現之!解釋virtual、sealed、override和abstract的區(qū)別

virtual申明虛方法的關鍵字,說明該方法可以被重寫?sealed說明該類不可被繼承

override重寫基類的方法

abstract申明抽象類和抽象方法的關鍵字,抽象方法不提供實現,由子類實現,抽象類不可實例化。重載和覆寫有什么區(qū)別?

答:重載是方法的名稱相同,不同的參數類型,不同的參數個數,不同的參數順序。覆寫提供了子類中改變父類方法行為的實現(是進行基類中函數的重寫)。在方法定義中,virtual有什么含義?

答:被virtual修飾的方法可以被子類覆寫可以將非靜態(tài)的方法覆寫成靜態(tài)方法嗎??答:不能,覆寫方法的署名必須與被覆寫方法的署名保持一致,除了將virtual改為override??梢愿矊懰接械奶摲椒▎??答:不可以,甚至子類中無法訪問父類中的私有方法可以阻止某一個類被其他類繼承嗎?

答:可以,使用關鍵字sealed可以實現允許某個類別繼承,但不允許其中的某個方法被覆寫嗎?

答:可以,標記這個類為public,并標記這個方法為sealed。如何區(qū)別重載方法??不同的參數類型,不同的參數個數,不同的參數順序c#繼承:

base表達當前對象基類的實例(使用base關鍵字可以調用基類的成員)this表達當前類的實例在靜態(tài)方法中不可以使用base和this關鍵字派生類會繼承基類所有的成員但是構造函數和析構函數不會被繼承注意假如派生類的方法和基類的方法同名則基類中的方法將會被隱藏假如需要隱藏則可以使用關鍵字new來隱藏假如不寫new關鍵字默認解決為隱藏雖然基類中同名的方法被隱藏了但是還是可以通過base關鍵字來調用//假如子類方法的方法名和基類的方法名相同時,系統(tǒng)將隱藏基類同名方法,自動調用子類的同名方法//派生類會繼承基類所有的成員,但是不能顯示調用基類的是有成員//在派生類中不可以調用基類的是有成員,如num1,num2,但是可以實現調用基類方法virtual用在基類中指定一個虛方法屬性表達這個方法屬性可以重寫override用在派生類中表達對基類虛方法屬性的重寫不能重寫非虛方法或靜態(tài)方法重寫的基方法必須是virtualabstract或override的為什么override也可以重寫呢由于基類中的override事實上是對基類的基類進行的重寫由于繼承可傳遞所以也可以對基類中override的方法進行重寫override聲明不能更改virtual方法的可訪問性override方法和virtual方法必須具有相同的訪問級別修飾符不能使用修飾符newstaticvirtual或abstract來修改override方法重寫屬性聲明必須指定與繼承屬性完全相同的訪問修飾符類型和名稱并且被重寫的屬性必須是virtualabstract或override的標記允許被重寫修飾靜態(tài)方法中不允許使用virtual關鍵字成員變量允許使用virtual關鍵字屬性可以被聲明為虛屬性(使用virtual關鍵字)重寫基類的方法(重寫同名的方法中有virtual關鍵字的方法)重寫和隱藏的區(qū)別隱藏(new關鍵字)是給子類的同名方法分派新的內存空間重寫(override關鍵字)是子類的同名方法放在基類同名方法的本來所在位置基類的同名方法位置向后移屬性也可以重寫virtual關鍵字和override關鍵字是成對出現的否則是語法錯誤派生類可以通過將重寫聲明為sealed來停止虛擬繼承這需要在類成員聲明中的override關鍵字前面放置sealed關鍵字在子類中重寫基類中的虛方法時可以使用base關鍵字調用基類中的虛方法//使用base關鍵可以在子類中訪問基類同名的方法//父類的引用指向子類的實例Testts=newTest2();父類的引用指向子類的實例(調用的是子類的方法)父類的引用只結識父類的方法不結識子類的新方法可以用來調用被子類覆蓋的父類的方法父類的引用仍然到父類方法位置去調用假如基類方法被聲明為virtual并且在子類中被override結果訪問到的是被子類override的方法

C#中的委托是什么?事件是不是一種委托?

委托可以把一個方法作為參數代入另一個方法。委托可以理解為指向一個函數的引用。是,是一種特殊的委托

C#中的堆和棧棧(Stack)由系統(tǒng)管理生存期,存儲代碼執(zhí)行和調用途徑,執(zhí)行或調用完畢即從棧中清除;?堆(Heap)中保存值和對象,調用完畢之后仍然存在,由垃圾回收器查找棧中有無指向該值或對象的引用,無則從堆中刪除

你對泛型了解嗎?簡樸說明一下泛型的有什么好處?泛型:通過參數化類型來實現在同一份代碼上操作多種數據類型。運用“參數化類型”將類型抽象化,從而實現靈活的復用

好處是——類型安全和減少裝箱、拆箱。提高性能、類型安全和質量,減少反復性的編程任務C#中所有對象共同的基類是什么??System.Object.如何在C#中實現繼承??在類名后加上一個冒號,再加上基類的名稱。C#支持多重繼承嗎??不支持??梢杂媒涌趤韺崿F。被protected修飾的屬性/方法在何處可以訪問??在繼承或間接繼承與這個類的子類中可以訪問。私有成員會被繼承么?

會,但是不能被訪問。所以看上去他們似乎是不能被繼承的,但事實上的確被繼承了。C#提供一個默認的無參構造函數,當我實現了此外一個有一個參數的構造函數時,還想保存這個無參數的構造函數。這樣我應當寫幾個構造函數??答:兩個,一旦你實現了一個構造函數,C#就不會再提供默認的構造函數了,所以需要手動實現那個無參構造函數。

簡述private、protected、public、internal修飾符的訪問權限。?private:私有成員,在類的內部才可以訪問。

protected:保護成員,該類內部和繼承類中可以訪問。?public:公共成員,完全公開,沒有訪問限制。?internal:在同一命名空間內可以訪問。new的兩種用法?答:實例話對象,隱藏基類方法。.new有幾種用法

第一種:newClass();第二種:覆蓋方法publicnewXXXX(){}第三種:new約束指定泛型類聲明中的任何類型參數都必須有公共的無參數構造函數。3.datagrid.datasouse可以連接什么數據源[dataset,datatable,dataview]dataset,dat(yī)atable,dataview,IList類成員有()種可訪問形式可訪問性:public,protected,private,internal委托與事件的用法

答:publicdelegat(yī)evoidhandels();//返回值是void,沒有參數

publiceventhandelseventHandels;

his.eventHandels=newhandels(fun);?publicvoidfun()?

{}

傳入某個屬性的SET方法的隱含參數的名稱是什么??答:value,它的類型和屬性所聲明的類型相同。string是值類型還是引用類型?引用類型String類與StringBuilder類有什么區(qū)別?為什么在.Net類庫中要同時存在這2個類?(簡答)stringBuilder比string更節(jié)約內存,所以stringBuilder更快String對象是不可改變的。每次使用System.String類中的方法之一或進行運算時(如賦值、拼接等)時,都要在內存中創(chuàng)建一個新的字符串對象,這就需要為該新對象分派新的空間。而StringBuilder則不會。在需要對字符串執(zhí)行反復修改的情況下,與創(chuàng)建新的String對象相關的系統(tǒng)開銷也許會非常昂貴。假如要修改字符串而不創(chuàng)建新的對象,則可以使用System.Text.StringBuilder類。例如,當在一個循環(huán)中將許多字符串連接在一起時,使用StringBuilder類可以提高性能。

在C#中,stringstr=null與stringstr=“”請盡量使用文字或圖象說明其中的區(qū)別。?答:stringstr=null是不給他分派內存空間,而stringstr=""給它分派長度為空字符串的內存空間。

ASP.net的身份驗證方式有哪些?分別是什么原理?

答:Windwos(默認)

用IIS...From(窗體)

用帳戶....Passport(密鑰)

Session有什么重大BUG,微軟提出了什么方法加以解決?

答:是iis中由于有進程回收機制,系統(tǒng)繁忙的話Session會丟失,可以用Sat(yī)eserver或SQLServer數據庫的方式存儲Session但是這種方式比較慢,并且無法捕獲Session的END事件c#中的三元運算符是?:.能用foreach遍歷訪問的對象需要實現()接口或聲明(GetEnumerat(yī)or)方法的類型。.<%#%>和<%%>有什么區(qū)別?<%#%>表達綁定的數據源<%%>是服務器端代碼塊常量在.net(C#or)中如何獲得當前窗體或控件的句柄,特別是控件自身的句柄(請列舉)this(C#)Me(vb.net)..C#可否對內存進行直接的操作?在.net下,.net引用了垃圾回收(GC)功能,它替代了程序員但是在C#中,不能直接實現Finalize方法,而是在析構函數中調用基類的Finalize()方法Dat(yī)eTime是否可認為null?不能,由于其為Struct類型,而結構屬于值類型,值類型不能為null,只有引用類型才干被賦值nullDat(yī)eTime.Parse(myString);這行代碼有什么問題?有問題,當myString不能滿足時間格式規(guī)定的時候,會引發(fā)異常,建議使用DateTime.TryParse()net的錯誤解決機制是:采用try->catch->finally結構,為什么不提倡catch(Exception)?try..catch在出現異常的時候影響性能;應當捕獲更具體得異常,比如IOExeception,OutOfMemoryException等cat(yī)ch(Exceptione){throwe;}和cat(yī)ch(Exceptione){throw;}的區(qū)別將發(fā)生的異常對象拋出,另一個只是拋出異常,并沒有拋出原異常對象)error和exception區(qū)別:error表達恢復不是不也許但很困難的情況下的一種嚴重問題。比如說內存溢出。不也許指望程序能解決這樣的情況。exception表達一種設計或實現問題。也就是說,它表達假如程序運營正常,從不會發(fā)生的情況。

GET與POST的區(qū)別

在FORM提交的時候,假如不指定Method,則默認為GET請求,Form中提交的數據將會附加在url之后,以?分開與url分開。字母數字字符原樣發(fā)送,但空格轉換為“+“號,其它符號轉換為%XX,其中XX為該符號以16進制表達的ASCII(或ISOLat(yī)in-1)值。GET請求請?zhí)峤坏臄祿胖迷冢萒TP請求協(xié)議頭中,而POST提交的數據則放在實體數據中;在使用POST方法的情況下,傳輸數據時不會將數據作為URL的一部分;它們會作為一個獨立的實體來傳輸。因此,POST方法更安全,你也可以用這個方法傳輸更多的數據。并且用POST傳輸的數據不一定要是文本,用GET方法傳輸的卻一定要是文本。(1)get是從服務器上獲取數據,post是向服務器傳送數據。(1)在客戶端,Get方式在通過URL提交數據,數據在URL中可以看到;POST方式,數據放置在HTMLHEADER內提交。(2)對于get方式,服務器端用Request.QueryString獲取變量的值,對于post方式,服務器端用Request.Form獲取提交的數據。(2)GET方式提交的數據最多只能有1024字節(jié),而POST則沒有此限制。(3)安全性問題。正如在(1)中提到,使用Get的時候,參數會顯示在地址欄上,而Post不會。所以,假如這些數據是中文數據并且是非敏感數據,那么使用get;假如用戶輸入的數據不是中文字符并且包含敏感數據,那么還是使用post為好。Bind和Eval函數的區(qū)別

綁定表達式?

<%#Eval("字段名")%>

<%#Bind("字段名")%>

1

Eval單向綁定:數據是只讀的?

Bind雙向綁定:數據可以更改,并返回服務器端,服務器可以解決更改后的數據,如存入數據庫.

2.當對次表達式操作時候,必須用Eval如<%#Eval("字段名").ToString().Trim()%>

3綁定控件的屬性時要用Bind,而Eval則是其它一些。

例如:<asp:TextBoxID="First"RunAt="Server"Text='<%#Bind("FirstName")%>'/>?

例如:<td><%#Eval("ProductID")%></td>Response.Redirect和Server.Transfer?請求的過程:

1)瀏覽器aspx文獻請求>服務器執(zhí)行--->碰到Response.Redirect語句->服務器發(fā)送Response.Redirect后面的地址給客戶機端的瀏覽器>瀏覽器請求執(zhí)行新的地址

2)瀏覽器aspx文獻請求->服務器執(zhí)行->碰到Server.Transfer語句->服務器轉向新的文獻?可以見Server.Transfer比Response.Redirect少了一次服務器發(fā)送回來和客戶端再請求的過程.?跳轉對象:

1)Response.Redirect可以切換到任何存在的網頁。

2)Server.Transfer只能切換到同目錄或者子目錄的網頁.

數據保密:

1、Response.Redirect后地址會變成跳轉后的頁面地址。

2、Server.Transfer后地址不變,隱藏了新網頁的地址及附帶在地址后邊的參數值。具有數據保密功能。?傳遞的數據量(網址后附帶的參數):

1、Response.Redirect可以傳遞的數據以2KB(也就是地址欄中地址的最大的長度)為限。?2、傳遞的數據超過2KB時,務必使用Server.Transfer。

Server.UrlEncode、HttpUtility.UrlDecode的區(qū)別

Server.UrlEncode的編碼方式是按照本地程序設立的編碼方式進行編碼的,而HttpUtility.UrlEncode是默認的按照.net的utf-8格式進行編碼的。

Static和非Static的區(qū)別:?一、用Stat(yī)ic聲明的方法和變量,不需要實例化該類就調用;二、Static的,就一定要用實例化的對象來調用,即用new來實例化。舉例說:假如有一個類People,有一個Static的方法MiaoShu(),調用方法就是People.MisoShu()有一個非Static的方法getName(),調用方法就是Peoplep=newPeople();p.getName();如何實現連接池保證你每一次的連接使用相同的連接字符串(和連接池相同);只有連接字符串相同時連接池才會工作。假如連接字符串不相同,應用程序就不會使用連接池而是創(chuàng)建一個新的連接。優(yōu)點使用連接池的最重要的優(yōu)點是性能。創(chuàng)建一個新的數據庫連接所花費的時間重要取決于網絡的速度以及應用程序和數據庫服務器的(網絡)距離,并且這個過程通常是一個很耗時的過程。而采用數據庫連接池后,數據庫連接請求可以直接通過連接池滿足而不需要為該請求重新連接、認證到數據庫服務器,這樣就節(jié)省了時間。缺陷數據庫連接池中也許存在著多個沒有被使用的連接一直連接著數據庫(這意味著資源的浪費)。技巧和提醒1.當你需要數據庫連接時才去創(chuàng)建連接池,而不是提前建立。一旦你使用完連接立即關閉它,不要等到垃圾收集器來解決它。2.在關閉數據庫連接前保證關閉了所有用戶定義的事務。3.不要關閉數據庫中所有的連接,至少保證連接池中有一個連接可用。假如內存和其他資源是你必須一方面考慮的問題,可以關閉所有的連接,然后在下一個請求到來時創(chuàng)建連接池。連接池FAQ1.何時創(chuàng)建連接池?當第一個連接請求到來時創(chuàng)建連接池;連接池的建立由數據庫連接的連接字符創(chuàng)來決定。每一個連接池都與一個不同的連接字符串相關。當一個新的連接請求到來時假如連接字符串和連接池使用的字符串相同,就從連接池取出一個連接;假如不相同,就新建一個連接池。2.何時關閉連接池?當連接池中的所有連接都已經關閉時關閉連接池。3.當連接池中的連接都已經用完,而有新的連接請求到來時會發(fā)生什么?當連接池已經達成它的最大連接數目時,有新的連接請求到來時,新的連接請求將放置到連接隊列中。當有連接釋放給連接池時,連接池將新釋放的連接分派給在隊列中排隊的連接請求。你可以調用close和dispose將連接歸還給連接池。4.我應當如何允許連接池?對于.NET應用程序而言,默認為允許連接池。(這意味著你可以不必為這件事情做任何的事情)當然,假如你可以在SQLConnection對象的連接字符串中加進Pooling=true;保證你的應用程序允許連接池的使用。5.我應當如何嚴禁連接池?ADO.NET默認為允許數據庫連接池,假如你希望嚴禁連接池,可以使用如下的方式:1)使用SQLConnection對象時,往連接字符串加入如下內容:Pooling=False;2)使用OLEDBConnection對象時,往連接字符串加入如下內容:OLEDBServices=-4;

提高.NET的性能?1使用異步方式調用Web服務和遠程對象只要有也許就要避免在請求的解決過程中對Web服務和遠程對象的同步調用,由于它占用的是的ASP.NET線程池中的工作線程,這將直接影響Web服務器響應其它請求的能力。2使用適當的Caching策略來提高性能3判斷字符串,不要用""比較。//避免?if(strABC!=null&&strABC?。?")

{}//推薦

if(!strABC.IsNullOrEmpty)

{}4頁面優(yōu)化5用完立即關閉數據庫連接

6盡量使用存儲過程,并優(yōu)化查詢語句?7只讀數據訪問用SqlDataReader,不要使用DataSet……….

.UDP連接和TCP連接的異同?答:前者只管傳,不管數據到不到,無須建立連接.后者保證傳輸的數據準確,須要連結.請解釋轉發(fā)與跳轉的區(qū)別

轉發(fā)就是服務端的跳轉A頁面提交數據到B頁面,B頁面進行解決然后從服務端跳轉到其它頁面

跳轉就是指客戶端的跳轉簡述你對XMLWebService的原理的結識?

答:運用SOAP(簡樸對象訪問協(xié)議)在http上執(zhí)行遠程方法的調用,也可以使用WSDL(Web服務描述語言)來完畢完整的描述Web服務,然后用UDDI注冊各個服務提供商提供的服務,以便共享他們。什么叫應用程序域?

答:應用程序域可以理解為一種輕量級進程。起到安全的作用。占用資源小。CTS、CLS、CLR分別作何解釋?

答:CTS:通用語言系統(tǒng)。CLS:通用語言規(guī)范。CLR:公共語言運營庫。什么是受管制的代碼??答:unsafe:非托管代碼。不通過CLR運營。什么是強類型系統(tǒng)?

答:RTTI:類型辨認系統(tǒng)。什么是code-behind技術?codebehind是指代碼和用戶界面分開

aspxandcs在.net中,配件的意思是??答:程序集。(中間語言,源數據,資源,裝配清單)常用的調用WebService的方法有哪些?

答:1.使用WSDL.exe命令行工具。?

2.使用VS.NET中的AddWebReference菜單選項netRemoting的工作原理是什么??答:服務器端向客戶端發(fā)送一個進程編號,一個程序域編號,以擬定對象的位置。O/RMapping的原理?答:運用反射,配置將對象和數據庫表映射remoting和webservice兩項技術的理解以及實際中的應用。

答:WS重要是可運用HTTP,穿透防火墻。而Remoting可以運用TCP/IP,二進制傳送提高效率。out保存字怎么使用,什么時候使用?答:有時為了從一個函數中返回多個值,我們需要使用out關鍵字,把輸出值賦給通過引用傳遞給方法的變量(也就是參數)。但C#規(guī)定變量再被引用的前必須初始化。在調用該方法時,還需要添加out關鍵字PDB是什么東西?在調試中它應當放在哪里?PDB是用于保存調試和項目狀態(tài)信息的文獻,在debug的時候將產生pdb文獻,調試的時候應當放在和相應應用程序集相同目錄。

使用ASMX的XMLWeb服務與使用SOAP的.NETRemoting的區(qū)別?Web服務使用的消息機制,而Remoting采用的RPC.WebService能用于不同平臺,不同語言,Remoting只合用于.Net。效率上Remoting高于XmlWebService類型系統(tǒng)是由XMLSchema表達的嗎?CLS是XMLSchema表達的嗎?不清楚從概念上闡述前期綁定(early-binding)和后期綁定(late-binding)的區(qū)別?這個就像是強弱類型的比較相似,前期綁定是在編譯的時候就擬定了要綁定的數據,而后期綁定是在運營的時候才填充數據。所以前期綁定假如失敗,會在編譯時報編譯錯誤,而后期綁定失敗只有在運營時的時候才發(fā)生調用Assembly.Load算靜態(tài)引用還是動態(tài)引用?動態(tài)

列舉一下你所了解的XML技術及其應用?答:保存配置,站與站之間的交流,WEBSERVICE。以及與數據庫的數據交互等地方都要用它.?7.如何理解委托?

答:

相稱于函數指針,定義了委托就可以在不調用原方法名稱的情況下調用那個方法.?委托具有以下特點:

委托類似于C++函數指針,但它是類型安全的。?委托允許將方法作為參數進行傳遞。

委托可用于定義回調方法。

委托可以鏈接在一起;例如,可以對一個事件調用多個方法。?方法不需要與委托署名精確匹配。有關更多信息,請參見協(xié)變和逆變。

C#2.0版引入了匿名方法的概念,此類方法允許將代碼塊作為參數傳遞,以代替單獨定義的方法。

概述反射和序列化反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態(tài)地創(chuàng)建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。然后,可以調用類型的方法或訪問其字段和屬性序列化:序列化是將對象轉換為容易傳輸的格式的過程。例如,可以序列化一個對象,然后使用HTTP通過Internet在客戶端和服務器之間傳輸該對象。在另一端,反序列化將從該流重新構造對象。11)

XmlSerializer是如何工作的?使用這個類的進程需要什么ACL權限?我只知道XmlSerializer是將對象的屬性和字段進行序列化和反序列化的,序列化成為xml數據,反序列化再將xml轉換成對象。應當至少需要ACL權限中的讀權限.23)XmlSerializer使用的針對屬性的模式有什么好處?解決了什么問題?只序列化有用的數據,而不是序列化整個對象。實現沒必要的數據冗余,和提高序列化時的性能。

26.根據委托(delegate)的知識,請完畢以下用戶控件中代碼片段的填寫:

namespacetest?{?publicdelegatevoidOnDBOperate();?publicclassUserControlBase:System.Windows.Forms.UserControl?{

publiceventOnDBOperateOnNew;

privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse)?{?if(e.Button.Equals(BtnNew))?{?//請在以下補齊代碼用來調用OnDBOperat(yī)e委托署名的OnNew事件。

}

}?}?答:if(OnNew!=null)

?

OnNew(this,e);27.分析以下代碼,完畢填空

stringstrTmp="abcdefg某某某";

inti=System.Text.Encoding.Default.GetBytes(strTmp).Length;

intj=strTmp.Length;

以上代碼執(zhí)行完后,i=j=

答:i=13,j=1028.SQLSERVER服務器中,給定表table1中有兩個字段ID、LastUpdat(yī)eDate,ID表達更新的事務號,LastUpdateDate表達更新時的服務器時間,請使用一句SQL語句獲得最后更新的事務號?答:SelectIDFROMtable1WhereLastUpdateDat(yī)e=(SelectMAX(LastUpdat(yī)eDat(yī)e)FROMtable1)29.根據線程安全的相關知識,分析以下代碼,當調用test方法時i>10時是否會引起死鎖?并簡要說明理由。

publicvoidtest(inti)

{

lock(this)?{

if(i>10)

{

i--;

test(i);

}?}

}

答:不會發(fā)生死鎖,(但有一點int是按值傳遞的,所以每次改變的都只是一個副本,因此不會出現死鎖。但假如把int換做一個object,那么死鎖會發(fā)生)3)什么叫圈復雜度(cyclomat(yī)iccomplexity)?為什么它很重要?不知道,望指教?4)寫一個標準的lock(),在訪問變量的前后創(chuàng)建臨界區(qū),要有"雙重檢查",lock的使用

publicvoidLockTest()?

{

ObjectlockObj=newObject();?

lock(lockObj)

{?

//?

}?

}5)什么叫FullTrust?放入GAC的assembly是否是FullTrust的?FullTrust完全信任。放入GAC中的Assembly是否FullTrust我的理解不是。我理解FullTrust是可以通過代碼設定的6)代碼加上需要安全權限的特性有什么好處?可以更加靈活的設立對代碼的訪問權限,實現代碼級保護。?這點不是特清楚,有明白的給講解下7)gacutil/l|find/i"Corillian"這句命令的作用是什么?全局程序集緩存中假如有Corillian就更新該程序集,沒有就安裝8)sn-tfoo.dll這句命令是干嘛的?顯示程序集foo.dll的公鑰標記9)DCOM需要防火墻打開哪些端口?端口135是干嘛用的?135端口,由于DCOM的端標語是隨機分派的,默認情況下,會分派1024以上的端標語,所以默認情況下,DCOM不能穿越防火墻。由于主線不曉得開哪個端口。但有解決辦法可以使DCOM分派的端標語固定,135是遠程過程調用(RPC)的默認端口10)對比OOP和SOA,它們的目的分別是什么?我想OOP和SOA應當沒有對比性吧。OOP是一種編程模型,強調將復雜的邏輯分解出小的模塊,特性是繼承,封裝和多態(tài)。而SOA是一個技術框架,技術框架和編程模型應當說不是一碼事吧?SOA的思想是將業(yè)務邏輯封裝成服務或者中間件提供應應用程序來調用,當然其組件化思想是繼承和發(fā)揚了OOP的優(yōu)點。

13)Debug.Write和Trace.Write有什么不同?何時應當使用哪一個?Debug.Write是調試的時候向跟蹤窗口輸出信息。當編譯模式為debug的時候才有效,為release的時候Debug.Write在編譯的時候會忽略,而Trace則是在debug和release兩種模式下均可以向跟蹤窗口輸出信息。14)DebugBuild和ReleaseBuild的區(qū)別,是否會有明顯的速度變化?請說明理由。Debug會產生pdb文獻,release不會。Debug用于開發(fā)時的調試,不能要于部署,而release用于部署.debug編譯一些特殊代碼,比如#IFDEBUGDebug.Write等,而Release則會將那些特殊標記省略15)JIT是以assembly為單位發(fā)生還是以方法為單位發(fā)生?這對于工作區(qū)有何影響?方法,道理很簡樸,由于對于一次運營,很也許只用到一個程序集中很少數類型和對象,而大部分也許并不會被使用,此時CLR傻乎乎的給整個程序集都給Compile了,CLR不是傻瘋了么

17)a.Equals(b)和a==b同樣嗎?不同樣。a.Equals(b)表達a與b一致,a==b表達a與b的值相等18)在對象比較中,對象一致和對象相等分別是指什么?對象一致是指兩個對象是同一個對象,引用相同。而對象相等是指兩個對象的值相同,但引用不一定相同19)在.NET中如何實現深拷貝(deepcopy)?實現IClonable接口20)請解釋一下IClonableIClonable方法是實現深度復制的接口,實現它應當能深度復制一個對象出來。深度復制的特性的調用對象的構造方法,創(chuàng)建新的對象,涉及創(chuàng)建對象中嵌套的引用對象的新實例。而Shadow復制則不同,是淺表復制,不重新創(chuàng)建新實例。淺表復制的實現是Object.MemberWiseClone().深度復制(DeepCopy)與淺表復制(ShadowCopy)的比較

publicclassName

publicstringFirstName;?

publicstringLastName;?

}?

publicclassPerson:ICloneable?

{

publicNamePersonName;?

publicstringEmail;

/**////<summary>?

///DeepCopy的例子?

///</summary>

///<returns></returns>?

publicObjectClone()

{

Personp=newPerson();

p.Email=this.Email;

p.PersonName=newName();

p.PersonName.FirstName=this.PersonName.FirstName;?

p.PersonName.LastName=this.PersonName.LastName;

returnp;

publicvoidChangLastName(stringlastName)

{

this.PersonName.LastName=lastName;

}?

publicstaticvoidMain()

{?

Personp=newPerson();?

p.PersonName=newName();

p.PersonName.LastName="jill";?

p.PersonName.FirstName="zhang";?

p.Email="";

PersonsameNamePerson=p.Clone()asPerson;

sameNamePerson.ChangLastName("clr_");?

Console.WriteLine(p.PersonName.LastName);?

Console.WriteLine(sameNamePerson.PersonName.LastName);

PersonsamePerson=p.MemberwiseClone()asPerson;

samePerson.ChangLastName("Shadow");

Console.WriteLine(p.PersonName.LastName);?

Console.WriteLine(sameNamePerson.PersonName.LastName);?

Console.Read();

}

}

24)為什么不應當在.NET中使用out參數?它究竟好不好?我挺喜歡用out參數的,特別是當函數需要有多于1個返回的時候,我比較樂意用out,至于它好不好沒研究過?25)特性可以放到某個方法的參數上?假如可以,這有什么用?可以,作用可以對參數有進一步限定,比如輸入參數為int類型,可以通過允許AttributeTargets=ParameterInfo的Attribute自定義實現來限定輸入參數的大小,比如當輸入參數小于100的時候便抱錯。對方法的參數設立Attribute的例子?

[AttributeUsage(AttributeTargets.Parameter)]?

publicclassParameterAtt:Attribute?

{?

publicintMin=100;?

}

publicclassAttributeTest

publicvoidTestMethod([ParameterAtt(Min=100)]intpar1)?

{

ParameterInfopara=MethodInfo.GetCurrentMethod().GetParameters()[0];?

ParameterAttatt=ParameterAtt.GetCustomAttribute(para,typeof(ParameterAtt))asParameterAtt;

if(att.Min>par1)?

{

thrownewException("規(guī)定para1最小為"+att.Min);

}?

}?

}

9.執(zhí)行下面代碼后:StringstrTemp="abcdefg某某某";IntiSystem.Text.Encoding.Default.GetBytes(strTemp).Length;Intj=strTemp.Length;問:i=(14);j=(11)i=(14);j=(11)中文兩個字節(jié)12.概述.NET里對remoting和webservice兩項技術的理解和實際中的應用。遠程邏輯調用,remoing接口只能用在.net中

9.

如何給服務器端控件增長客戶端腳本。

答:控件的Attributes6.私有程序集與共享程序集有什么區(qū)別??一個私有程序集通常為單個應用程序所使用,并且存儲于這個應用程序所在的目錄之中,或此目錄下面的一個子目錄中。共享程序集通常存儲在全局程序集緩存(GlobalAssemblyCache)之中,這是一個由.NET運營時所維護的程序集倉庫。共享程序集通常是對許多應用程序都有用的代碼庫,比如.NETFramework類。10.請解釋ASP.NET中以什么方式進行數據驗證

Aps.net中有非空驗證,比較驗證,取值范圍驗證,正則表達式驗證及客戶自定義驗證五大控件,另尚有一個集中驗證信息解決控件11.WEB控件可以激發(fā)服務端事件,請談談服務端事件是怎么發(fā)生并解釋其原理?自動傳回是什么?為什么要使用自動傳回。?在web控件發(fā)生事件時,客戶端采用提交的形式將數據交回服務端,服務端先調用Page_Load事件,然后根據傳回的狀態(tài)信息自動調用服務端事件自動傳回是當我們在點擊客戶端控件時,采用提交表單的形式將數據直接傳回到務端?只有通過自動傳回才干實現服務端事件的機制,假如沒有自動回傳機制就只能調用客戶端事件,而不能調用服務端事件13.

請解釋web.config文獻中的重要節(jié)點?appSettings包含自定義應用程序設立。?system.web系統(tǒng)配置

compilation動態(tài)調試編譯設立

customErrors自定義錯誤信息設立?authenticat(yī)ion身份驗證,此節(jié)設立應用程序的身份驗證策略。?authorization授權,此節(jié)設立應用程序的授權策略.14.

請解釋ASP。NET中的web頁面與其隱藏類之間的關系??一個ASP.NET頁面一般都相應一個隱藏類,一般都在ASP.NET頁面的聲明中指定了隱藏類例如一個頁面Tst1.aspx的頁面聲明如下?<%@Pagelanguage="c#"Codebehind="Tst1.aspx.cs"AutoEventWireup="false"Inherits="T1.Tst1"%>?Codebehind="Tst1.aspx.cs"表白經編譯此頁面時使用哪一個代碼文獻?Inherits="T1.Tst1"表用運營時使用哪一個隱藏類15.

什么是viewstate,能否禁用?是否所用控件都可以禁用?

Viewstate是保存狀態(tài)的一種機制,EnableViewState屬性設立為false即可禁用16.

當發(fā)現不能讀取頁面上的輸入的數據時很有也許是什么因素導致的?怎么解決?

很有也許是在Page_Load中數據解決時沒有進行Page的IsPostBack屬性判斷17.

請解釋什么是上下文對象,在什么情況下要使用上下文對象?上下文對象是指HttpContext類的Current屬性,當我們在一個普通類中要訪問內置對象(Response,Request,Session,Server,Appliction等)時就要以使用此對象16、解釋一下ajax及實現原理

答:Ajax的核心是JavaScript對象XmlHttpRequest,它使您可以使用JavaScript向服務器提出請求并解決響應,而不阻塞用戶,異步請求。

1、delegat(yī)e是引用類型還是值類型?enum、int[]和string呢(難度系數40%)?答案:delegate引用類型,enum值類型,int[]引用類型,string引用類型。3、base這個關鍵字有哪幾種語法?override呢?答案:base兩個語法,分別是調用基類構造函數和調用基類方法,override用于重寫基類方法。4、請指出C#中是否有下列關鍵字?virtual、sealed、abstract、import、as、in、goto、final、Const、signed、String(提醒,僅指出C#中沒有的即可)(難度系數50%)。答案:沒有的關鍵字:import、final、Const、signed、String5、在循環(huán):for(inti=0;i<100;i++)Console.WriteLine(i);中,請指出i++的執(zhí)行時機。答案:在Console.WriterLine(i);執(zhí)行之后6、試說明continue關鍵字的用處。答案:立即開始下一次循環(huán),忽略循環(huán)體余下的語句7、object是C#的關鍵字嗎?請指出C#中有哪些類型關鍵字,如int、float。(提醒,寫得越多越好)。答案:是,object、int、uint、long、ulong、short、ushort、byte、sbyte、char、float、double、decimal、bool,如回答:enum、struct、class、delegate也算對。8、C#的XML文檔注釋中(以///開頭的注釋),<summary>標簽用于描述什么?<param>標簽呢?答案:<summary>用于某個元素的概要說明,<param>用于某個方法的參數概要說明。9、我們知道[]是數組和索引器的訪問操作符,但它尚有一個語法,是什么?答案:特性(Attribute)18.請敘述屬性與索引器的區(qū)別。?屬性索引器

?

通過名稱標記。通過署名標記。

?

通過簡樸名稱或成員訪問來訪問。通過元素訪問來訪問。

?

可認為靜態(tài)成員或實例成員。必須為實例成員。

?

屬性的

get

訪問器沒有參數。索引器的

get

訪問器具有與索引器相同的形參表。

?

屬性的

set

訪問器包含隱式

value

參數。除了

value

參數外,索引器的

set

訪問器還具有與索引器相同的形參表。1)描述線程與進程的區(qū)別?線程(Thread)與進程(Process)兩者都定義了某種邊界,不同的是進程定義的是應用程序與應用程序之間的邊界,不同的進程之間不能共享代碼和數據空間,而線程定義的是代碼執(zhí)行堆棧和執(zhí)行上下文的邊界。一個進程可以涉及若干個線程,同時創(chuàng)建多個線程來完畢某項任務,便是多線程。而同一進程中的不同線程共享代碼和數據空間。用一個比方來說,假如一個家庭代表一個進程,在家庭內部,各個成員就是線程,家庭中的每個成員都有義務對家庭的財富進行積累,同時也有權利對家庭財富進行消費,當面對一個任務的時候,家庭也可以派出幾個成員來協(xié)同完畢,而家庭之外的人則沒有辦法直接消費不屬于自己家庭的財產。2)什么是Windows服務,它的生命周期與標準的EXE程序有什么不同Windows服務是運營在windows后臺指定用戶下(默認System)的應用程序,它沒有標準的UI界面,想比標準的EXE程序,Windows服務是在服務開始的時候創(chuàng)建,而在服務結束的時候銷毀,并且可以設立服務是否與操作系統(tǒng)一起啟動,一起關閉。它支持三種方式:1)自動方式2)手動方式3)禁用。自動方式的時候,windows服務將在OS啟動后自動啟動運營,而手動方式則必須手工啟動服務,禁用的情況下服務將不能被啟動。此外標準的EXE默認使用的當前登錄的用戶,而windows服務則默認使用System用戶,這在對系統(tǒng)資源訪問的時候特別需要注意。3)

Windows單個進程所能訪問的最大內存量是多少?它與系統(tǒng)的最大虛擬內存同樣嗎?這對于系統(tǒng)設計有什么影響?這個需要針對硬件平臺,公式為單個進程能訪問的最大內存量=2的解決器位數次方/2,比如通常情況下,32位解決器下,單個進程所能訪問的最大內存量為:232/2=2G。單個進程能訪問的最大內存量是最大虛擬內存的1/2,由于要分派給操作系統(tǒng)一半虛擬內存。4)

什么是強類型,什么是弱類型?哪種更好些?為什么?強類型是在編譯的時候就擬定類型的數據,在執(zhí)行時類型不能更改,而弱類型在執(zhí)行的時候才會擬定類型。沒有好不好,兩者各有好處,強類型安全,由于它事先已經擬定好了,并且效率高。一般用于編譯型編程語言,如c++,java,c#,pascal等,弱類型相比而言不安全,在運營的時候容易出現錯誤,但它靈活,多用于解釋型編程語言,如javascript,vb等5)

PID是什么?在做系統(tǒng)的故障排除時如何使用它?PID是進程編號,在系統(tǒng)發(fā)現故障的時候,可以根據它尋找故障所發(fā)生的具體進程,并且可通過visualstudio.net等ide將故障進程附加到進程中進行調試(debug)6)

單個TCP/IP端口上可以被多少個進程偵聽?1個7)

什么是GAC?它解決了什么問題?GloalAssemblyCache,全局應用程序集緩存。它解決了幾個程序共享某一個程序集的問題。不必再將那個被共享的程序集拷貝到應用程序目錄了,其實這道理很簡樸,.net應用程序在加載的時候,會一方面查看全局應用程序集緩存,假如有就可以直接使用,沒有再到應用程序目錄進行查找。1.白盒測試和黑盒測試

答:黑盒測試:已知產品的功能設計規(guī)格,可以進行測試證明每個實現了的功能是否符合規(guī)定。白盒測試:已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規(guī)格規(guī)定,所有內部成分是否以通過檢查。軟件的黑盒測試意味著測試要在軟件的接口處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數據驅動測試。黑盒測試重要是為了發(fā)現以下幾類錯誤:1、是否有不對的或漏掉的功能?2、在接口上,輸入是否能對的的接受?能否輸出對的的結果?3、是否有數據結構錯誤或外部信息(例如數據文獻)訪問錯誤?4、性能上是否可以滿足規(guī)定?5、是否有初始化或終止性錯誤?軟件的白盒測試是對軟件的過程性細節(jié)做細致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員運用程序內部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯途徑進行測試。通過在不同點檢查程序狀態(tài),擬定實際狀態(tài)是否與預期的狀態(tài)一致。因此白盒測試又稱為結構測試或邏輯驅動測試。白盒測試重要是想對程序模塊進行如下檢查:1、對程序模塊的所有獨立的執(zhí)行途徑至少測試一遍。2、對所有的邏輯鑒定,取“真”與取“假”的兩種情況都能至少測一遍。3、在循環(huán)的邊界和運營的界線內執(zhí)行循環(huán)體。4、測試內部數據結構的有效性,等等。請簡述一下用Socket進行同步通訊編程的具體環(huán)節(jié)?1、在應用程序和遠程設備中使用協(xié)議和網絡地址初始化套接字

2、在應用程序中通過指定端口和地址建立監(jiān)聽?3、遠程設備發(fā)出連接請求

4、應用程序接受連接產生通信scoket?5、應用程序和遠程設備開始通訊(在通訊中應用程序將掛起直到通訊結束)

6、通訊結束,關閉應用程序和遠程設備的Socket回收資源OSI網絡結構的七層模型及其核心思想是什么

第七層:應用層

?

定義了用于在網絡中進行通信和數據傳輸的接口-用戶程式;

?

提供標準服務,比如虛擬終端、文獻以及任務的傳輸和解決;

第六層:表達層

掩蓋不同系統(tǒng)間的數據格式的不同性;

指定獨立結構的數據傳輸格式;

數據的編碼和解碼;加密和解密;壓縮和解壓縮

第五層:會話層

管理用戶會話和對話;

控制用戶間邏輯連接的建立和掛斷;

報告上一層發(fā)生的錯誤?第四層:傳輸層?

管理網絡中端到端的信息傳送;

通過錯誤糾正和流控制機制提供可靠且有序的數據包傳送;?

提供面向無連接的數據包的傳送;

第三層:網絡層

定義網絡設備間如何傳輸數據;

根據唯一的網絡設備地址路由數據包;?

提供流和擁塞控制以防止網絡資源的損耗?第二層:數據鏈路層

?

定義操作通信連接的程序;

封裝數據包為數據幀;

監(jiān)測和糾正數據包傳輸錯誤?第一層:物理層

定義通過網絡設備發(fā)送數據的物理方式;

作為網絡媒介和設備間的接口;?

定義光學、電氣以及機械特性。2幾十上百萬行,如何快速查詢出表數據?答:用分頁存儲過程

/*?

函數名稱:GetRecordFromPage

函數功能:獲取指定頁的數據?

參數說明:@tblName

包含數據的表名

@fldName

關鍵字段名?

@PageSize

每頁記錄數

@PageIndex

要獲取的頁碼

@OrderType

排序類型,0-升序,1-降序?

@strWhere

查詢條件(注意:不要加where)?*/

CREATEPROCEDUREGetRecordFromPage?

@tblName

varchar(255),

--表名

@fldName

varchar(255),

--字段名?

@PageSize

int=10,

--頁尺寸

@PageIndex

int=1,

--頁碼

@OrderType

bit=0,

--設立排序類型,非0值則降序

@strWhere

varchar(2023)=''

--查詢條件(注意:不要加where)

ASdeclare@strSQL

varchar(6000)

--主語句?declare@strTmp

varchar(1000)

--臨時變量

declare@strOrdervarchar(500)

--排序類型if@OrderType!=0

begin

set@strTmp='<(selectmin'

set@strOrder='orderby['+@fldName+']desc'

end

else?begin

set@strTmp='>(selectmax'

set@strOrder='orderby['+@fldName+']asc'

endset@strSQL='selecttop'+str(@PageSize)+'*from['?

+@tblName+']where['+@fldName+']'+@strTmp+'(['?

+@fldName+'])from(selecttop'+str((@PageIndex-1)*

溫馨提示

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

評論

0/150

提交評論