C#面試題中常見(jiàn)比較全新精選_第1頁(yè)
C#面試題中常見(jiàn)比較全新精選_第2頁(yè)
C#面試題中常見(jiàn)比較全新精選_第3頁(yè)
C#面試題中常見(jiàn)比較全新精選_第4頁(yè)
C#面試題中常見(jiàn)比較全新精選_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄目錄11. 接口與抽象類有什么區(qū)別32. String類與StringBuilder類有什么區(qū)別?33. 在中類(class)與結(jié)構(gòu)(struct)的異同:34. Override與重載有什么區(qū)別45. C#中接口和類的異同46. 請(qǐng)你說(shuō)說(shuō).NET中類和結(jié)構(gòu)的區(qū)別?47. HashMap和Hashtable區(qū)另1J?48. 值類型和引用類型的區(qū)別?59. Heap與stack的差別?510. 談?wù)刦inal,finally,finalize的區(qū)別。511. Collection和Collections的區(qū)另U。512. sleep()和wait()有什么區(qū)別?513. 在c#中using和

2、new這兩個(gè)關(guān)鍵字有什么意義,請(qǐng)寫出你所知道的意義?using指令和語(yǔ)句new創(chuàng)建實(shí)例new隱藏基類中方法614. OLEDBConnection和SQLConnection有什么區(qū)別?615. C/S和B/S的區(qū)別,優(yōu)缺點(diǎn)有哪些?616. ArrayList,Array和string口三著的區(qū)另717. ADO.net常用的對(duì)象有哪些?DataSet和DataReader的區(qū)別718. webusercontrol和cusromcontrol區(qū)別和含義819. 詳細(xì)闡述cookie、viewstate>session之間的區(qū)別,以及其各自工作原理820. Collection和Coll

3、ections的區(qū)別821. error和exception有什么區(qū)別?822. ADO和ADO.NET的區(qū)另923. HTTP1。0和HTTP1。1協(xié)議的區(qū)另924. JavaScript類型與dotnet類型的區(qū)別925. JavaScript與Java的區(qū)另U?926. SQLSERVER的“存儲(chǔ)過(guò)程"和"觸發(fā)器”有什么不同之處?運(yùn)行上有什么特點(diǎn).927. 描述Cookie和Session的作用,區(qū)別和各自的應(yīng)用范圍1028. C#用多種修飾符來(lái)表達(dá)類的不同性質(zhì)。根據(jù)其保護(hù)級(jí)C#的類有五種不同的限制修飾符,請(qǐng)寫出并指出它們之間的區(qū)別是什么?1029. 簡(jiǎn)單描述包和dl

4、l異同1030. 簡(jiǎn)述parent和owner的區(qū)別1131. 數(shù)據(jù)的實(shí)體完整性和參照完整性的區(qū)別1132. DIV和Table兩種頁(yè)面排版的優(yōu)缺點(diǎn)1133. SQL、Access、Oracle三種數(shù)據(jù)庫(kù)之間的區(qū)別?1134. Asp和A的區(qū)別?1235. 如何選擇使用結(jié)構(gòu)還是類:1236. OSI網(wǎng)絡(luò)結(jié)構(gòu)的七層模型及其核心思想是什么1237. 進(jìn)程和線程的區(qū)別?1338. 堆和棧的區(qū)別?1339. 觸發(fā)器分為事前觸發(fā)和事后觸發(fā),有何區(qū)別?1340. 描述類中的構(gòu)造函數(shù)和析構(gòu)函數(shù)?1341. ASP.NET的Application、Session、Cookie、ViewState和Cache等

5、變量的區(qū)別是什么?1442. C#中的驗(yàn)證控件有幾種1443. 頁(yè)面間的傳值有哪幾種方式1444. 表和視圖的區(qū)別。1545. 請(qǐng)編程遍歷頁(yè)面上所有TextBox控件并給它賦值為string.Empty?只能用在46. dows項(xiàng)目里1546自定義控件和一般用戶控件的異同?如果要用這兩者之一,你會(huì)選擇哪種?為什么.1547. 口與抽象類有什么區(qū)別答:(1).接口用于規(guī)范,抽象類用于共性。(2)接口中只能聲明方法,屬性,事件,索引器。而抽象類中可以有方法的實(shí)現(xiàn),也可以定義非靜態(tài)的類變量。(3)抽象類是類,所以只能被單繼承,但是接口卻可以一次實(shí)現(xiàn)多個(gè)。(4)抽象類可以提供某些方法的部分實(shí)現(xiàn),接口不

6、可以(5)抽象類的實(shí)例是它的子類給出的。接口的實(shí)例是實(shí)現(xiàn)接口的類給出的。(6)在抽象類中加入一個(gè)方法,那么它的子類就同時(shí)有了這個(gè)方法。而在接口中加入新的方法,那么實(shí)現(xiàn)它的類就要重新編寫(這就是為什么說(shuō)接口是一個(gè)類的規(guī)范了)。(7)接口成員被定義為公共的,但抽象類的成員也可以是私有的、內(nèi)部的或受保護(hù)的內(nèi)部成員(其中受保護(hù)的內(nèi)部成員只能在應(yīng)用程序的代碼或派生類中訪問(wèn))。此外接口不能包含字段、構(gòu)造函數(shù)、析構(gòu)函數(shù)、靜態(tài)成員或常量。2 .String類與StringBuilder類有什么區(qū)別?答:(1)StringBuilder表示值為可變字符序列,可以通過(guò)追加、移除、替換或插入字符而創(chuàng)建它后可以對(duì)它進(jìn)

7、行修改,而String對(duì)象的值是該有序集合的內(nèi)容,并且該值是不可變的。(2)如果串聯(lián)固定數(shù)量的字符串,則String類更適合串聯(lián)操作,如果串聯(lián)任意數(shù)量的字符串,則StringBuilder對(duì)象更適合串聯(lián)操作.(3)大量字符連接的時(shí)候使用stringbuilder,stringbuilder的效率比string高很多。String類有不可改變性。每次執(zhí)行字符操作時(shí),都會(huì)創(chuàng)建一個(gè)新的String對(duì)象。StringBuilder類解決了對(duì)字符串進(jìn)行重復(fù)修改的過(guò)程中創(chuàng)建大量對(duì)象的問(wèn)題。初始化一個(gè)StringBuilder之后,它會(huì)自動(dòng)申請(qǐng)一個(gè)默認(rèn)的StringBuilder容量(默認(rèn)值是16),這個(gè)容

8、量是由Capacity來(lái)控制的.并且允許,我們根據(jù)需要來(lái)控制Capacity的大小,也可以通過(guò)Length來(lái)獲取或設(shè)置StringBuilder的長(zhǎng)度.3 .在中類(class)與結(jié)構(gòu)(struct)的異同:答:類是引用類型,可以繼承類、接口和被繼承,有默認(rèn)的構(gòu)造函數(shù),有析構(gòu)函數(shù),可以使用abstract和sealed,有protected修飾符,必須使用new初始化。結(jié)構(gòu)是值類型,只能繼承接口,不能被繼承,沒(méi)有默認(rèn)的構(gòu)造函數(shù),可以創(chuàng)建,沒(méi)有析構(gòu)函數(shù),不可以用abstract和sealed,沒(méi)有protected修飾符,可以不用new初始化但可以直接使用它成員。如何選擇使用結(jié)構(gòu)還是類:a)堆棧

9、的空間有限,對(duì)于大量的邏輯的對(duì)象,創(chuàng)建類要比創(chuàng)建結(jié)構(gòu)好一些b)結(jié)構(gòu)表示如點(diǎn)、矩形和顏色這樣的輕量對(duì)象,例如,如果聲明一個(gè)含有1000個(gè)點(diǎn)對(duì)象的數(shù)組,則將為引用每個(gè)對(duì)象分配附加的內(nèi)存。在此情況下,結(jié)構(gòu)的成本較低。c)在表現(xiàn)抽象和多級(jí)別的對(duì)象層次時(shí),類是最好的選擇d)大多數(shù)情況下該類型只是一些數(shù)據(jù)時(shí),結(jié)構(gòu)是最佳的選擇4 .Override與重載有什么區(qū)別答:其實(shí)很本質(zhì)的區(qū)別就是看函數(shù)特征:覆寫(Override)的兩個(gè)函數(shù)的函數(shù)特征相同,重載(Overload)的兩個(gè)函數(shù)的函數(shù)名雖然相同,但函數(shù)特征不同。函數(shù)特征包括函數(shù)名,參數(shù)的類型和個(gè)數(shù)。Override是在繼承的時(shí)候,如果你寫的函數(shù)與要繼承的

10、函數(shù)函數(shù)特征相同,那么,加上這個(gè)關(guān)鍵字,在使用這個(gè)子類的這個(gè)函數(shù)的時(shí)候就看不見(jiàn)父類(或超類)的函數(shù)了,它被覆蓋掉了。5 .C#中接口和類的異同接口和類都是類,不同的是,接口只包含方法或?qū)傩缘穆暶?,不包含具體實(shí)現(xiàn)方法的代碼,接口可以實(shí)現(xiàn)多繼承,而類只能是單繼承,繼承接口的類必須實(shí)現(xiàn)接口中聲明的方法或?qū)傩浴=涌谥饕x一種規(guī)范,統(tǒng)一調(diào)用方法,在大型項(xiàng)目中接口正發(fā)揮日益重要的作用。6 .請(qǐng)你說(shuō)說(shuō).NET中類和結(jié)構(gòu)的區(qū)別?答:結(jié)構(gòu)和類具有大體的語(yǔ)法,但是結(jié)構(gòu)受到的限制比類要多。結(jié)構(gòu)不能聲明有默認(rèn)的構(gòu)造函數(shù),因?yàn)榻Y(jié)構(gòu)的副本是編譯器創(chuàng)建和銷毀的,所以不需要默認(rèn)的構(gòu)造函數(shù)和析構(gòu)函數(shù)。結(jié)構(gòu)是值類型,所以對(duì)結(jié)構(gòu)

11、變量所做的改變不會(huì)影響其的原值,而類是引用類型,改變其變量的值會(huì)改變其原值。聲明結(jié)構(gòu)用Struck關(guān)鍵字,中明類用class關(guān)鍵字,向方法傳遞結(jié)構(gòu)時(shí)是通過(guò)值傳遞的,而不是通過(guò)引用。與類不同,結(jié)構(gòu)的實(shí)例化可以不使用New關(guān)鍵字。類可以實(shí)現(xiàn)接口。7 .HashMap和Hashtable區(qū)另非線程安全的實(shí)現(xiàn)他們都實(shí)現(xiàn)了null,效率可以高于Hashtable 。答:HashMapHHashtable的輕量級(jí)實(shí)現(xiàn),map接口,主要區(qū)別是HashMa健值可以為空8 .值類型和引用類型的區(qū)別?答:值類型的值是存放在堆棧中的,改變其值,不改變變量原有的值,而引用類型的值是存放在棧中的,其引用的地址是存放在堆

12、中的,改變其值也就改變了變量原有的值。值類型不允許包含null值,然而可空類型可以將null賦值給值類型。9 .Heap與stack的差別?答:Heap是堆,空間是由手動(dòng)操作分配和釋放的,它有很大的自由存儲(chǔ)區(qū)。Stack是棧,是由是操作系統(tǒng)自動(dòng)分配和釋放的,棧上的空間是有限的。程序在編譯期間為變量和函數(shù)分配內(nèi)存都是在棧上進(jìn)行的,且在運(yùn)行時(shí)函數(shù)調(diào)用時(shí)的參數(shù)的傳遞也是在棧上進(jìn)行的。10 .談?wù)刦inal,finally,finalize的區(qū)別。答:final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize

13、是Object類的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的該方法,可以覆蓋該方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。11 .Collection和Collections的區(qū)別。答:Collection是集合類的上級(jí)接口,繼承與他的接口主要有Set和List.Collections是針對(duì)集合類的一個(gè)幫助類,他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作12 .sleep()和wait()有什么區(qū)別?答:sleep()方法是使線程停止一段時(shí)間的方法。在sleep時(shí)間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。這是因?yàn)樵谀莻€(gè)時(shí)刻,其它線程可能正在運(yùn)行而且沒(méi)有被調(diào)度為放棄

14、執(zhí)行,除非(a)"醒來(lái)”的線程具有更高的優(yōu)先級(jí)(b)正在運(yùn)行的線程因?yàn)槠渌蚨枞ait()是線程交互時(shí),如果線程對(duì)一個(gè)同步對(duì)象x發(fā)出一個(gè)wait()調(diào)用,該線程會(huì)暫停執(zhí)行,被調(diào)對(duì)象進(jìn)入等待狀態(tài),直到被喚醒或等待時(shí)間到。13.在c#中using和new這兩個(gè)關(guān)鍵字有什么意義,請(qǐng)寫生你所知道的意義?using指令和語(yǔ)句new創(chuàng)建實(shí)例new隱藏基類中方法1) ).using指令。using+命名空間名字,這樣可以在程序中直接用命令空間中的類型,而不必指定類型的詳細(xì)命名空間。2) .using別名。using+別名=包括詳細(xì)命名空間信息的具體的類型。當(dāng)一個(gè)cs引用多個(gè)命名空間時(shí),而有

15、相同的類型時(shí)可以這樣做。比如namespacel和namespace2下面都有myClass類時(shí),可以u(píng)singclassl=namespace1.myClass;usingclass2=namespace2.myClass。3) .using語(yǔ)句,定義一個(gè)范圍,在范圍結(jié)束時(shí)處理對(duì)象。1)new運(yùn)算符,用于創(chuàng)建對(duì)象和調(diào)用構(gòu)造函數(shù)。new修飾符,用于向基類成員隱藏繼承成員。(3)new約束,用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。14 .OLEDBConnection和SQLConnection有什么區(qū)別?答:OLEDBConnection,連接池將由提供程序自動(dòng)處理,所以您不必自己進(jìn)

16、行管理。SQLConnection,連接池被隱式管理,但也提供選項(xiàng)允許您自己管理池。SQLConnection是SQL專用的,OLEDBConnection可以對(duì)其他數(shù)據(jù)庫(kù)的連接,如Access。15 .C/S和B/S的區(qū)別,優(yōu)缺點(diǎn)有哪些?答:C/S是客戶端/服務(wù)器端,C/S的程序通常也叫胖客戶端,也就是一個(gè)程序的大部分功能,都在客戶端實(shí)現(xiàn),而服務(wù)器端只實(shí)現(xiàn)一小部分功能。通過(guò)這點(diǎn)不難看出,C/S的程序大部分在客戶端實(shí)現(xiàn),對(duì)于服務(wù)器端的壓力相對(duì)小一些,服務(wù)器端可以節(jié)省一些。而且C/S的程序用窗口來(lái)做,個(gè)人認(rèn)為開(kāi)發(fā)效率上快一點(diǎn)。但C/S的程序一大弊端就是,必須要在客戶端安裝并部署程序才能運(yùn)行,也就

17、是用戶必須得到客戶端程序才可以運(yùn)行。所以得考慮不同系統(tǒng)之間的安裝與配置。B/S是瀏覽器/服務(wù)器端,B/S的程序通常也叫瘦客戶端,與C/S相反。B/S的程序大部分功能都要在服務(wù)器端實(shí)現(xiàn),客戶端只用來(lái)做輔助的控制功能。因?yàn)锽/S的程序直接部署安裝在服務(wù)器上。用戶只需要有瀏覽器,并知道網(wǎng)址就可以使用程序??蛻舳瞬槐刈鋈魏闻渲煤桶惭b,即可使用應(yīng)用程序。而B/S也是有缺點(diǎn)的,首先B/S大部分功能都要在服務(wù)器端實(shí)現(xiàn),對(duì)于服務(wù)器的要求就很高。服務(wù)器同時(shí)要應(yīng)付用戶訪問(wèn)與程序處理,所以服務(wù)器的配置必須能夠應(yīng)付。另外就是B/S的程序是瀏覽器中執(zhí)行,所以B/S的程序操作客戶端電腦的硬件,一般就得安裝ActiveX等

18、插件在客戶端才可以操作。因此B/S的程序?qū)τ诓僮饔布?,?yōu)勢(shì)沒(méi)有C/S的程序要好。16 .ArrayList,Array和string口三著的區(qū)別?答:Array的容量是固定的,而ArrayList或List的容量可根據(jù)需要自動(dòng)擴(kuò)充。如果更改了Capacity屬性的值,則可以自動(dòng)進(jìn)行內(nèi)存重新分配和元素復(fù)制。ArrayList和List提供添加、插入或移除某一范圍元素的方法。在Array中,您只能一次獲取或設(shè)置一個(gè)元素的值。使用Synchronized方法很容易創(chuàng)建ArrayList或List的同步版本。Array將實(shí)現(xiàn)同步的任務(wù)留給了用戶。ArrayList和List提供將只讀和固定大小包裝返回

19、到集合的方法;而Array不提供。另一方面,Array提供了ArrayList和List所缺少的某些靈活性。例如:可以設(shè)置Array的下限,但ArrayList或List的下限始終為零。Array可以具有多個(gè)維度,而ArrayList或List始終只是一維的。特定類型(不包括Object)的Array的性能優(yōu)于ArrayList,這是因?yàn)锳rrayList的元素屬于Object類型,所以在存儲(chǔ)或檢索值類型時(shí)通常發(fā)生裝箱和取消裝箱操作。不過(guò),在不需要重新分配時(shí)(即最初的容量十分接近列表的最大容量),List的性能與同類型的數(shù)組十分相近。需要數(shù)組的大多數(shù)情況都可以改為使用ArrayList或Lis

20、t;它們更容易使用,并且一般與相同類型的數(shù)組具有相近的性能。Array位于System命名空間中;ArrayList位于System.Collections命名空間中;List位于System.Collections.Generic命名空間中。string只是字符串?dāng)?shù)組17.ADO.net常用的對(duì)象有哪些?DataSet 和 DataReader 的區(qū)別答:Connection,DataAdapter,DataReader,Command,DataSet,Configuration;DateSet是數(shù)據(jù)在內(nèi)存中的緩存,dataset是保存數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),斷開(kāi)模式,而DataReader不承擔(dān)保

21、存數(shù)據(jù)的責(zé)任,需要自己手動(dòng)關(guān)閉連接數(shù)據(jù)庫(kù),它只負(fù)責(zé)從數(shù)據(jù)源讀取數(shù)據(jù)到本地而已,是只讀向前的,它不是數(shù)據(jù)結(jié)構(gòu),而是網(wǎng)絡(luò)通訊組件的高層封裝。18 .webusercontrol和cusromcontrol區(qū)另岬口含義答:用戶控件是用ASP.NET代碼創(chuàng)建的控件,就像標(biāo)準(zhǔn)的ASP.NETWeb頁(yè)面中創(chuàng)建控件一樣,不同之處在于一旦創(chuàng)建了用戶控件,就可以在多個(gè)ASP.NET頁(yè)面中重用它們。自定義控件可以組合幾個(gè)控件的功能、擴(kuò)展現(xiàn)有控以及創(chuàng)建新的控件,完全包含在c#程序集中,不需要單獨(dú)的ASP.NET代碼,這意味著不需要在.ascx文件中組裝UI,19 .詳細(xì)闡述cookie、viewstate、sess

22、ion之間的區(qū)別,以及其各自工作原理答:Session允許通過(guò)將對(duì)象存儲(chǔ)在Web服務(wù)器的內(nèi)存中在整個(gè)用戶會(huì)話過(guò)程中保持任何對(duì)象,可以是多個(gè)頁(yè)面,只要是在一次會(huì)話過(guò)程中。viewstate獲取狀態(tài)信息的字典,這些信息使您可以在同一頁(yè)的多個(gè)請(qǐng)求間保存和還原服務(wù)器控件的視圖狀態(tài)。cookie類由客戶端應(yīng)用程序用來(lái)檢索有關(guān)通過(guò)HTTP響應(yīng)接收的Cookie的信息,如果用戶禁用cookie就不能使用,而且存放的大小有限。20 .Collection和Collections的區(qū)別答:Collection是集合類的上級(jí)接口,繼承與他的接口主要有Set和List.Collections是針對(duì)集合類的一個(gè)幫助類

23、,他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作21 .error和exception有什么區(qū)別?答:error表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問(wèn)題。比如說(shuō)內(nèi)存溢出。不可能指望程序能處理這樣的情況。exception表示一種設(shè)計(jì)或?qū)崿F(xiàn)問(wèn)題。也就是說(shuō),它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況22 .ADO和ADO.NET的區(qū)別答:ADO以Recordset存儲(chǔ),而ADO.NET則以DataSet表示。Recordset看起來(lái)更像單表,如果讓Recordset以多表的方式表示就必須在SQL中進(jìn)行多表連接。反之,DataSet可以是多個(gè)表的集合。ADO的運(yùn)作是一種在線方

24、式,這意味著不論是瀏覽或更新數(shù)據(jù)都必須是實(shí)時(shí)的。ADO.NET則使用離線方式,在訪問(wèn)數(shù)據(jù)的時(shí)候ADO.NET會(huì)利用XML制作數(shù)據(jù)的一份幅本,ADO.NET的數(shù)據(jù)庫(kù)連接也只有在這段時(shí)間需要在線。由于ADO使用COM技術(shù),這就要求所使用的數(shù)據(jù)類型必須符合COM規(guī)范,而ADO.NET基于XML格式,數(shù)據(jù)類型更為豐富并且不需要再做COM編排導(dǎo)致的數(shù)據(jù)類型轉(zhuǎn)換,從而提高了整體性能。23 .HTTP1。0和HTTP1。1協(xié)議的區(qū)另答:HTTP/1.0協(xié)議使用非持久連接,即在非持久連接下,一個(gè)tcp連接只傳輸一個(gè)Web對(duì)象.HTTP/1.1默認(rèn)使用持久連接(然而,HTTP/1.1協(xié)議的客戶機(jī)和服務(wù)器可以配置

25、成使用非持久連接).在持久連接下,不必為每個(gè)Web對(duì)象的傳送建立一個(gè)新的連接,一個(gè)連接中可以傳輸多個(gè)對(duì)象!通俗點(diǎn)說(shuō),HTTP1.0規(guī)范中,一次連接只有一個(gè)請(qǐng)求和一個(gè)應(yīng)答;而HTTP1.1規(guī)范中,一次連接有多個(gè)請(qǐng)求和多個(gè)應(yīng)答。不管HTTP1.0還是HTTP1.1,請(qǐng)求和應(yīng)答都是一一對(duì)應(yīng)的24 .JavaScript類型與dotnet類型的區(qū)別25 .JavaScript與Java的區(qū)別?26.SQLSERVER的"存儲(chǔ)過(guò)程"和"觸發(fā)器"有什么不同之處?運(yùn)行上有什么特點(diǎn)答:觸發(fā)器是一種特殊類型的存儲(chǔ)過(guò)程,當(dāng)使用下面的一種或多種數(shù)據(jù)修改操作在指定表中對(duì)數(shù)據(jù)進(jìn)行

26、修改時(shí),觸發(fā)器會(huì)生效:UPDATE、INSERT或DELETE。觸發(fā)器可以查詢其它表,而且可以包含復(fù)雜的SQL語(yǔ)句。它們主要用于強(qiáng)制復(fù)雜的業(yè)務(wù)規(guī)則或要求。例如,可以控制是否允許基于顧客的當(dāng)前帳戶狀態(tài)插入定單。觸發(fā)器還有助于強(qiáng)制引用完整性,以便在添加、更新或刪除表中的行時(shí)保留表之間已定義的關(guān)系。然而,強(qiáng)制引用完整性的最好方法是在相關(guān)表中定義主鍵和外鍵約束。如果使用數(shù)據(jù)庫(kù)關(guān)系圖,則可以在表之間創(chuàng)建關(guān)系以自動(dòng)創(chuàng)建外鍵約束。有關(guān)詳細(xì)信息,請(qǐng)參見(jiàn)表關(guān)系。觸發(fā)器的優(yōu)點(diǎn)如下:觸發(fā)器是自動(dòng)的:它們?cè)趯?duì)表的數(shù)據(jù)作了任何修改(比如手工輸入或者應(yīng)用程序采取的操作)之后立即被激活。觸發(fā)器可以通過(guò)數(shù)據(jù)庫(kù)中的相關(guān)表進(jìn)行層

27、疊更改。例如,可以在titles表的title_id列上寫入一個(gè)刪除觸發(fā)器,以使其它表中的各匹配行采取刪除操作。該觸發(fā)器用title_id列作為唯一鍵,在titleauthor、sales及roysched表中對(duì)各匹配行進(jìn)行定位。觸發(fā)器可以強(qiáng)制限制,這些限制比用CHECK約束所定義的更復(fù)雜。與CHECK約束不同的是,觸發(fā)器可以引用其它表中的列。存儲(chǔ)過(guò)程可以使得對(duì)數(shù)據(jù)庫(kù)的管理、以及顯示關(guān)于數(shù)據(jù)庫(kù)及其用戶信息的工作容易得多。存儲(chǔ)過(guò)程是SQL語(yǔ)句和可選控制流語(yǔ)句的預(yù)編譯集合,以一個(gè)名稱存儲(chǔ)并作為一個(gè)單元處理。存儲(chǔ)過(guò)程存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi),可由應(yīng)用程序通過(guò)一個(gè)調(diào)用執(zhí)行,而且允許用戶聲明變量、有條件執(zhí)行以及其

28、它強(qiáng)大的編程功能。存儲(chǔ)過(guò)程可包含程序流、邏輯以及對(duì)數(shù)據(jù)庫(kù)的查詢。它們可以接受參數(shù)、輸出參數(shù)、返回單個(gè)或多個(gè)結(jié)果集以及返回值??梢猿鲇谌魏问褂肧QL語(yǔ)句的目的來(lái)使用存儲(chǔ)過(guò)程,它具有以下優(yōu)點(diǎn):可以在單個(gè)存儲(chǔ)過(guò)程中執(zhí)行一系列SQL語(yǔ)句。可以從自己的存儲(chǔ)過(guò)程內(nèi)引用其它存儲(chǔ)過(guò)程,這可以簡(jiǎn)化一系列復(fù)雜語(yǔ)句。存儲(chǔ)過(guò)程在創(chuàng)建時(shí)即在服務(wù)器上進(jìn)行編譯,所以執(zhí)行起來(lái)比單個(gè)SQL語(yǔ)句快。27 .描述Cookie和Session的作用,區(qū)別和各自的應(yīng)用范圍答:都能保存信息。cookie保存客戶端信息,用戶可以禁止使用cookie,而且大小比較小,保存的信息有限。Session生存周期是一次會(huì)話,基于cookie,但不受

29、cookie限制28 .C#用多種修飾符來(lái)表達(dá)類的不同性質(zhì)。根據(jù)其保護(hù)級(jí)C#的類有五種不同的限制修飾符,請(qǐng)寫生并指由它們之間的區(qū)別是什么?public可以被任意存取protected只可以被本類和其繼承子類存取internal只可以被本組合體(Assembly)內(nèi)所有的類存取,組合體是C獻(xiàn)言中類被組合后的邏輯單位和物理單位,其編譯后的文件擴(kuò)展名往往是“.DLL”或“.EXE”。protectedinternal唯一的一種組合限制修飾符,它只可以被本組合體內(nèi)所有的類和這些類的繼承子類所存取。private只可以被本類所存取。29 .簡(jiǎn)單描述包和dll異同答:DLL(動(dòng)態(tài)鏈接庫(kù))是經(jīng)過(guò)編譯的代碼模

30、塊,它和可執(zhí)行文件共同工作,為應(yīng)用程序提供功能。程序包是用于C+Builder應(yīng)用程序、IDE或是二者同時(shí)使用的特殊DLL。有兩種程序包:運(yùn)行時(shí)程序包和設(shè)計(jì)時(shí)程序包。運(yùn)行時(shí)程序包提供程序執(zhí)行時(shí)的功能,設(shè)計(jì)時(shí)程序包擴(kuò)展了IDE的功能。30 .簡(jiǎn)述parent和owner的區(qū)別答:Parent屬性是指構(gòu)件的包容器,構(gòu)件只能在此范圍內(nèi)顯示和移動(dòng)Owner屬性是指構(gòu)件的所有者,它負(fù)責(zé)構(gòu)件的創(chuàng)建和釋放。如在上例中,系統(tǒng)默認(rèn)窗體上所有構(gòu)件的所有者是窗體,而窗體的所有者是Application。順便指出,create方法應(yīng)帶有表示構(gòu)件所有者的參數(shù),如在上例中,構(gòu)件所有者是窗體,即self。Parent屬性和

31、Owner屬性是運(yùn)行階段的屬性,只能在運(yùn)行階段,通過(guò)代碼設(shè)置。31 .數(shù)據(jù)的實(shí)體完整性和參照完整性的區(qū)別參照完整性約束用于答:實(shí)體完整性約束是指構(gòu)成關(guān)系主鍵的屬性或?qū)傩约喜荒転榭?。約束多個(gè)表之間的數(shù)據(jù)一致性32 .DIV和Table兩種頁(yè)面排版的優(yōu)缺點(diǎn)答:a)定位:如我們的site針對(duì)的海量的訪問(wèn),海量的數(shù)據(jù),(當(dāng)然cache問(wèn)題這里不討論)那么在構(gòu)架上通常會(huì)減少table使用量,尤其是大量的循環(huán)的時(shí)候。對(duì)于復(fù)雜的site來(lái)說(shuō),div+css有時(shí)候很難準(zhǔn)確定義出我們所表達(dá)的內(nèi)容這時(shí)候table就是很好的選擇。這也是開(kāi)發(fā)前要考慮的問(wèn)題,在要達(dá)到開(kāi)發(fā)目的的同時(shí)保證所需要的成本。同樣用div+cs

32、s來(lái)實(shí)現(xiàn)一個(gè)結(jié)構(gòu)復(fù)雜的page時(shí)往往不如用一個(gè)table就能簡(jiǎn)單得搞定。b)特性:table可以很容易建立起結(jié)構(gòu)化的界面,缺點(diǎn)就是擴(kuò)展性和可讀性相對(duì)較差,擴(kuò)展性差表現(xiàn)在維護(hù)和修正上面,table在表現(xiàn)上更加嚴(yán)謹(jǐn)”,有局限性。div布局更加靈活,能簡(jiǎn)單也能夠復(fù)雜,div的使用要配合專業(yè)的css參數(shù)來(lái)實(shí)現(xiàn)c)兼容:我們常用的ie,ff瀏覽器對(duì)divcss設(shè)置上非常挑剔,div要求我們嚴(yán)格css支持,而table可以不用考慮這么多。table的嚴(yán)謹(jǐn)在不同瀏覽器中得到了很好的表現(xiàn)。33.SQL、Access、Oracle三種數(shù)據(jù)庫(kù)之間的區(qū)別?答:Access是一種桌面數(shù)據(jù)庫(kù),只適合數(shù)據(jù)量少的應(yīng)用,在處

33、理少量數(shù)據(jù)和單機(jī)訪問(wèn)的數(shù)據(jù)庫(kù)時(shí)是很好的,效率也很高。但是它的同時(shí)訪問(wèn)客戶端不能多于4個(gè)。access數(shù)據(jù)庫(kù)有一定的極限,如果數(shù)據(jù)達(dá)到100M左右,很容易造成服務(wù)器iis假死,或者消耗掉服務(wù)器的內(nèi)存導(dǎo)致服務(wù)器崩潰。SQLServer是基于服務(wù)器端的中型的數(shù)據(jù)庫(kù),可以適合大容量數(shù)據(jù)的應(yīng)用。在處理海量數(shù)據(jù)的效率,后臺(tái)開(kāi)發(fā)的靈活性,可擴(kuò)展性等方面強(qiáng)大。因?yàn)楝F(xiàn)在數(shù)據(jù)庫(kù)都使用標(biāo)準(zhǔn)的SQL語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理,所以如果是標(biāo)準(zhǔn)SQL語(yǔ)言,兩者基本上都可以通用的。SQLServer還有更多的擴(kuò)展,可以用存儲(chǔ)過(guò)程,數(shù)據(jù)庫(kù)大小無(wú)極限限制。Oracle是基可二服務(wù)器的大型的數(shù)據(jù)庫(kù),34 .Asp和A的區(qū)別?答:ASP

34、.Net擺脫了以前ASP使用腳本語(yǔ)言來(lái)編程的缺點(diǎn),理論上可以使用任何編程語(yǔ)言包括C+,VB,JS等等,當(dāng)然,最合適的編程語(yǔ)言還是MS為.NetFrmaework專門推出的C(讀csharp),它可以看作是VC和Java的混合體吧,盡管MS自己講C#內(nèi)核中更多的象VC,但實(shí)際上我還是認(rèn)為它和Java更象一些吧。首先它是面向?qū)ο蟮木幊陶Z(yǔ)言,而不是一種腳本,所以它具有面向?qū)ο缶幊陶Z(yǔ)言的一切特性,比如封裝性、繼承性、多態(tài)性等等,這就解決了剛才談到的ASP的那些弱點(diǎn)。封裝性使得代碼邏輯清晰,易于管理,并且應(yīng)用到ASP.Net上就可以使業(yè)務(wù)邏輯和Html頁(yè)面分離,這樣無(wú)論頁(yè)面原型如何改變,業(yè)務(wù)邏輯代碼都不

35、必做任何改動(dòng);繼承性和多態(tài)性使得代碼的可重用性大大提高,你可以通過(guò)繼承已有的對(duì)象最大限度保護(hù)你以前的投資。并且C#和C+、Java一樣提供了完善的調(diào)試/糾錯(cuò)體系。35 .如何選擇使用結(jié)構(gòu)還是類:1) .堆棧的空間有限,對(duì)于大量的邏輯的對(duì)象,創(chuàng)建類要比創(chuàng)建結(jié)構(gòu)好一些2) .結(jié)構(gòu)表示如點(diǎn)、矩形和顏色這樣的輕量對(duì)象,例如,如果聲明一個(gè)含有1000個(gè)點(diǎn)對(duì)象的數(shù)組,則將為引用每個(gè)對(duì)象分配附加的內(nèi)存。在此情況下,結(jié)構(gòu)的成本較低。3) .在表現(xiàn)抽象和多級(jí)別的對(duì)象層次時(shí),類是最好的選擇4) .大多數(shù)情況下該類型只是一些數(shù)據(jù)時(shí),結(jié)構(gòu)是最佳的選擇36.OSI網(wǎng)絡(luò)結(jié)構(gòu)的七層模型及其核心思想是什么第七層:應(yīng)用層?定義

36、了用于在網(wǎng)絡(luò)中進(jìn)行通信和數(shù)據(jù)傳輸?shù)慕涌?用戶程式;?提供標(biāo)準(zhǔn)服務(wù),比如虛擬終端、文件以及任務(wù)的傳輸和處理;第六層:表示層?掩蓋不同系統(tǒng)間的數(shù)據(jù)格式的不同性;?指定獨(dú)立結(jié)構(gòu)的數(shù)據(jù)傳輸格式;?數(shù)據(jù)的編碼和解碼;加密和解密;壓縮和解壓縮第五層:會(huì)話層?管理用戶會(huì)話和對(duì)話;?控制用戶間邏輯連接的建立和掛斷;?報(bào)告上一層發(fā)生的錯(cuò)誤第四層:傳輸層?管理網(wǎng)絡(luò)中端到端的信息傳送;?通過(guò)錯(cuò)誤糾正和流控制機(jī)制提供可靠且有序的數(shù)據(jù)包傳送;?提供面向無(wú)連接的數(shù)據(jù)包的傳送;第三層:網(wǎng)絡(luò)層?定義網(wǎng)絡(luò)設(shè)備間如何傳輸數(shù)據(jù);?根據(jù)唯一的網(wǎng)絡(luò)設(shè)備地址路由數(shù)據(jù)包;?提供流和擁塞控制以防止網(wǎng)絡(luò)資源的損耗第二層:數(shù)據(jù)鏈路層?定義操作通

37、信連接的程序;?封裝數(shù)據(jù)包為數(shù)據(jù)幀;?監(jiān)測(cè)和糾正數(shù)據(jù)包傳輸錯(cuò)誤第一層:物理層?定義通過(guò)網(wǎng)絡(luò)設(shè)備發(fā)送數(shù)據(jù)的物理方式;?作為網(wǎng)絡(luò)媒介和設(shè)備間的接口;定義光學(xué)、電氣以及機(jī)械特性。37.進(jìn)程和線程的區(qū)別?答:一個(gè)進(jìn)程內(nèi)可以有多個(gè)線程但是線程內(nèi)不可能有進(jìn)程一個(gè)程序可以開(kāi)多線程來(lái)完成不同或相同的工作28.堆和棧的區(qū)別?答:棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;堆是程序運(yùn)行期間動(dòng)態(tài)分配的內(nèi)存空間,你可以根據(jù)程序的運(yùn)行情況確定要分配的堆內(nèi)存的大小39.觸發(fā)器分為事前觸發(fā)和事后觸發(fā),有何區(qū)別?答:事前觸發(fā)器運(yùn)行于觸發(fā)事件發(fā)生之前,而事后觸發(fā)器運(yùn)行于觸發(fā)事件發(fā)生之后。通常事前觸發(fā)器可以獲取事件之前和新的字段值40寸苗述類中的構(gòu)造函數(shù)和析構(gòu)函數(shù)?答:構(gòu)造函數(shù)是在實(shí)例化對(duì)象時(shí)自動(dòng)跳動(dòng)的函數(shù),與類同名,沒(méi)有返回值,可以有參數(shù),可以用于實(shí)例化對(duì)象時(shí)設(shè)置字段的值。析構(gòu)函數(shù)與構(gòu)造函數(shù)類似,與類同名,但前面多個(gè)“"符號(hào),沒(méi)有參數(shù),用來(lái)釋放資源41 .ASP.NET的Application、Session、Cookie、ViewState和Cache等變量的區(qū)別是什么?a) Application:能夠包含任意大小的信息,在整個(gè)應(yīng)用程序周期中有效,是面對(duì)所有應(yīng)用程序用戶的,保存于服務(wù)器端。b) Session:能夠保存相

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論