- 相關(guān)推薦
net筆試題
1. 填空: (1)面向?qū)ο蟮恼Z(yǔ)言具有________性、_________性、________性。 (2)能用foreach遍歷訪(fǎng)問(wèn)的對(duì)象需要實(shí)現(xiàn) ________________接口或聲明________________方法的類(lèi)型。 (3)列舉ADO.net中的五個(gè)主要對(duì)象_______________、_____________、_______________、_______________、_________________。 2. 不定項(xiàng)選擇: (1) 以下敘述正確的是: A. 接口中可以有虛方法。 B. 一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。 C. 接口不能被實(shí)例化。 D. 接口中可以包含已實(shí)現(xiàn)的方法。 (2) 從數(shù)據(jù)庫(kù)讀取記錄,你可能用到的方法有: A. ExecuteNonQuery B. ExecuteScalar C. Fill D. ExecuteReader 3. 簡(jiǎn)述 private、 protected、 public、 internal 修飾符的訪(fǎng)問(wèn)權(quán)限。 4. 寫(xiě)出一條Sql語(yǔ)句: 取出表A中第31到第40記錄(SQLServer, 以自動(dòng)增長(zhǎng)的ID作為主鍵,注意:ID可能不是連續(xù)的。) 5 .列舉ASp.NET 頁(yè)面之間傳遞值的幾種方式。 6. 寫(xiě)出程序的輸出結(jié)果 class Class1{ private string str = \"Class1.str\"; private int i = 0; static void StringConvert(string str){ str = \"string being converted.\"; } static void StringConvert(Class1 c){ c.str = \"string being converted.\"; } static void Add(int i){ i++; } static void AddWithRef(ref int i){ i++; } static void Main(){ int i1 = 10; int i2 = 20; string str = \"str\"; Class1 c = new Class1(); Add(i1); AddWithRef(ref i2); Add(c.i); StringConvert(str); StringConvert(c); Console.WriteLine(i1); Console.WriteLine(i2); Console.WriteLine(c.i); Console.WriteLine(str); Console.WriteLine(c.str); } } 7.寫(xiě)出程序的輸出結(jié)果 public abstract class A { public A() { Console.WriteLine(\A\); } public virtual void Fun() { Console.WriteLine(\"A.Fun()\"); } } public class B: A { public B() { Console.WriteLine(\B\); } public new void Fun() { Console.WriteLine(\"B.Fun()\"); } public static void Main() { A a = new B(); a.Fun(); } } 8. 寫(xiě)出程序的輸出結(jié)果: public class A { public virtual void Fun1(int i) { Console.WriteLine(i); } public void Fun2(A a) { a.Fun1(1); Fun1(5); } } public class B : A { public override void Fun1(int i) { base.Fun1 (i + 1); } public static void Main() { B b = new B(); A a = new A(); a.Fun2(b); b.Fun2(a); } } 9. 一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數(shù)是多少, 用遞歸算法實(shí)現(xiàn)。(C#語(yǔ)言) 10.程序設(shè)計(jì): 貓大叫一聲,所有的老鼠都開(kāi)始逃跑,主人被驚醒。(C#語(yǔ)言) 要求:1.要有聯(lián)動(dòng)性,老鼠和主人的行為是被動(dòng)的。 2.考慮可擴(kuò)展性,貓的叫聲可能引起其他聯(lián)動(dòng)效應(yīng)。 參考答案: 1. (1)繼承性、封裝性、多態(tài)性。(考基本概念) (2)IEnumerable 、 GetEnumerator (對(duì)foreach機(jī)制的理解,本來(lái)不想出這題的,湊分) (3)... (送分題, 對(duì)ADO.net的了解) 評(píng)分標(biāo)準(zhǔn):一空1分,滿(mǎn)分10分。 2. (1) B、C (考對(duì)接口的理解)(2)B、C、D (考查對(duì)ADO.net的熟練程度) 評(píng)分標(biāo)準(zhǔn): 一題5分,不選或者錯(cuò)選均不得分。漏選得2分。滿(mǎn)分10分。 3. . private : 私有成員, 在類(lèi)的內(nèi)部才可以訪(fǎng)問(wèn)。 protected : 保護(hù)成員,該類(lèi)內(nèi)部和繼承類(lèi)中可以訪(fǎng)問(wèn)。 public : 公共成員,完全公開(kāi),沒(méi)有訪(fǎng)問(wèn)限制。 internal: 在同一命名空間內(nèi)可以訪(fǎng)問(wèn)。 評(píng)分標(biāo)準(zhǔn):答對(duì)1題2分,2題5分,3題7分。全對(duì)10分。 (送分題) 4.解1:select top 10 * from A where id not in (select top 30 id from A) 解2:select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A) 評(píng)分標(biāo)準(zhǔn): 寫(xiě)對(duì)即10分。(答案不唯一,datagrid 分頁(yè)可能需要用到) 5.1.使用QueryString,如....?id=1; response. Redirect().... 2.使用Session變量 3.使用Server.Transfer ....等等 評(píng)分標(biāo)準(zhǔn): 答對(duì)1點(diǎn)得3分, 兩點(diǎn)7分, 3點(diǎn)10分。 6.(考查值引用和對(duì)象引用) 10 21 0 str string being converted. 評(píng)分標(biāo)準(zhǔn):答對(duì)一點(diǎn)得2分,滿(mǎn)分10分。 7.A B A.Fun() 評(píng)分標(biāo)準(zhǔn): 寫(xiě)出A.B 得5分,寫(xiě)出A.Fun()得5分,滿(mǎn)分10分。 (考查在繼承類(lèi)中構(gòu)造函數(shù), 以及new 方法, ) 8.2 5 1 6 評(píng)分標(biāo)準(zhǔn): 答對(duì)一點(diǎn)得2分,兩點(diǎn)得5分,3點(diǎn)得7分。全對(duì)得10分。 (一些人做這題,頭都暈了.... ^_^ ) 9. public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i <= 0) return 0; else if(i > 0 && i <= 2) return 1; else return Foo(i -1) + Foo(i - 2); } } 評(píng)分標(biāo)準(zhǔn): 寫(xiě)出return Foo(i -1) + Foo(i - 2); 得5分。 寫(xiě)出if(i > 0 && i <= 2) return 1; 得5分。 方法參數(shù)過(guò)多需要扣分(扣除分?jǐn)?shù) = 參數(shù)個(gè)數(shù) - 1) 不用遞歸算法扣5分 (遞歸算法在樹(shù)結(jié)構(gòu)建立等方面比較常用) 10 要點(diǎn):1. 聯(lián)動(dòng)效果,運(yùn)行代碼只要執(zhí)行Cat.Cryed()方法。2. 對(duì)老鼠和主人進(jìn)行抽象 評(píng)分標(biāo)準(zhǔn): <1>.構(gòu)造出Cat、Mouse、Master三個(gè)類(lèi),并能使程序運(yùn)行(2分) <2>從Mouse和Master中提取抽象(5分) <3>聯(lián)動(dòng)效應(yīng),只要執(zhí)行Cat.Cryed()就可以使老鼠逃跑,主人驚醒。(3分) public interface Observer { void Response(); //觀察者的響應(yīng),如是老鼠見(jiàn)到貓的反映 } public interface Subject { void AimAt(Observer obs);//針對(duì)哪些觀察者,這里指貓的要撲捉的對(duì)象---老鼠 } public class Mouse : Observer { private string name; public Mouse(string name, Subject subj) { this.name = name; subj.AimAt(this); } public void Response() { Console.WriteLine(name + \" attempt to escape!\"); } } public class Master : Observer { public Master(Subject subj) { subj.AimAt(this); } public void Response() { Console.WriteLine(\"Host waken!\"); } } public class Cat : Subject { private ArrayList observers; public Cat() { this.observers = new ArrayList(); } public void AimAt(Observer obs) { this.observers.Add(obs); } public void Cry() { Console.WriteLine(\"Cat cryed!\"); foreach (Observer obs in this.observers) { obs.Response(); } } } class MainClass { static void Main(string[] args) { Cat cat = new Cat(); Mouse mouse1 = new Mouse(\"mouse1\", cat); Mouse mouse2 = new Mouse(\"mouse2\", cat); Master master = new Master(cat); cat.Cry(); } } //--------------------------------------------------------------------------------------------- 設(shè)計(jì)方法二: 使用event -- delegate設(shè)計(jì).. public delegate void SubEventHandler(); public abstract class Subject { public event SubEventHandler SubEvent; protected void FireAway() { if (this.SubEvent != null) this.SubEvent(); } } public class Cat : Subject { public void Cry() { Console.WriteLine(\"cat cryed.\"); this.FireAway(); } } public abstract class Observer { public Observer(Subject sub) { sub.SubEvent += new SubEventHandler(Response); } public abstract void Response(); } public class Mouse : Observer { private string name; public Mouse(string name, Subject sub) : base(sub) { this.name = name; } public override void Response() { Console.WriteLine(name + \" attempt to escape!\"); } } public class Master : Observer { public Master(Subject sub) : base(sub){} public override void Response() { Console.WriteLine(\"host waken\"); } } class Class1 { static void Main(string[] args) { Cat cat = new Cat(); Mouse mouse1 = new Mouse(\"mouse1\", cat); Mouse mouse2 = new Mouse(\"mouse2\", cat); Master master = new Master(cat); cat.Cry(); } } 1. C#中 property 與 attribute的區(qū)別,他們各有什么用處,這種機(jī)制的好處在哪里? 2. 講一講你理解的web service,在dot net framework中,怎么很好的結(jié)合x(chóng)ml?(講概念就行了) 3. C#, Java 和 c++的特點(diǎn),有什么相同的地方,不同的地方,C#分別從c++和java中吸取了他們那些優(yōu)點(diǎn)? 4. C#可否對(duì)內(nèi)存進(jìn)行直接的操作?(這可是個(gè)難點(diǎn)哦?要注意。 5. 用Visual C++ 6.0編寫(xiě)的代碼(unmanaged code),如何在CLR下和其他dot net component結(jié)合? 6. 以前作過(guò)的一些項(xiàng)目?介紹一下自己的編程經(jīng)驗(yàn)。(這是蒙混不過(guò)去的,基本一問(wèn)就知道是真是假) 7. 你對(duì)公司有什么期望?你的薪水期望值?為什么學(xué)計(jì)算機(jī)?以前的工作經(jīng)驗(yàn)(這非常重要)? Q3: 維護(hù)數(shù)據(jù)庫(kù)的完整性、一致性、你喜歡用觸發(fā)器還是自寫(xiě)業(yè)務(wù)邏輯?為什么 Q4:ADO。NET相對(duì)于ADO等主要有什么改進(jìn)? Q5:ASp。NET與ASp相比,主要有哪些進(jìn)步? Q6:C#中的委托是什么?事件是不是一種委托? Q7:描述一下C#中索引器的實(shí)現(xiàn)過(guò)程,是否只能根據(jù)數(shù)字進(jìn)行索引? Q8:C#中要使一個(gè)類(lèi)支持FOREACH遍歷,實(shí)現(xiàn)過(guò)程怎樣? Q10:寫(xiě)一個(gè)HTML頁(yè)面,實(shí)現(xiàn)以下功能,左鍵點(diǎn)擊頁(yè)面時(shí)顯示“您好”,右鍵點(diǎn)擊時(shí)顯示“禁止右鍵”。并在2分鐘后自動(dòng)關(guān)閉頁(yè)面。 Q11:你對(duì)XMLHTTp、WEBSERVICE 了解嗎?簡(jiǎn)單描述其特點(diǎn)、作用 Q12:接口和抽象類(lèi)有什么區(qū)別?你選擇使用接口和抽象類(lèi)的依據(jù)是什么? Q13:自定義控件和一般用戶(hù)控件的異同?如果要用這兩者之一,你會(huì)選擇哪種?為什么 Q14:大概描述一下ASp。NET服務(wù)器控件的生命周期 Q15:UML Q16:面向?qū)ο蟮母拍,主要特點(diǎn) Q17:類(lèi)劃分的依據(jù)。類(lèi)粒度問(wèn)題 Q18:事物管理問(wèn)題 第一,談?wù)刦inal, finally, finalize的區(qū)別。 第二,Anonymous Inner Class (匿名內(nèi)部類(lèi)) 是否可以extends(繼承)其它類(lèi),是否可以implements(實(shí)現(xiàn))interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,說(shuō)得越多越好(面試題有的很籠統(tǒng))。 第四,&和&&的區(qū)別。 第五,HashMap和Hashtable的區(qū)別。 第六,Collection 和 Collections的區(qū)別。 第七,什么時(shí)候用assert。 第八,GC是什么? 為什么要有GC? 第九,String s = new String(\"xyz\");創(chuàng)建了幾個(gè)String Object? 第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 第十一,short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)? 第十二,sleep() 和 wait() 有什么區(qū)別? 第十三,Java有沒(méi)有g(shù)oto? 第十四,數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法? 第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類(lèi)型? 第十六,Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別? 第十七,給我一個(gè)你最常見(jiàn)到的runtime exception。 第十八,error和exception有什么區(qū)別? 第十九,List, Set, Map是否繼承自Collection接口? 第二十,abstract class和interface有什么區(qū)別? 第二十一,abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized? 第二十二,接口是否可繼承接口? 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承實(shí)體類(lèi)(concrete class)? 第二十三,啟動(dòng)一個(gè)線(xiàn)程是用run()還是start()? 第二十四,構(gòu)造器Constructor是否可被override? 第二十五,是否可以繼承String類(lèi)? 第二十六,當(dāng)一個(gè)線(xiàn)程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線(xiàn)程是否可進(jìn)入此對(duì)象的其它方法? 第二十七,try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后? 第二十八,編程題: 用最有效率的方法算出2乘以8等於幾? 第二十九,兩個(gè)對(duì)象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話(huà)對(duì)不對(duì)? 第三十,當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞? 第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 第三十二,編程題: 寫(xiě)一個(gè)Singleton出來(lái)。 數(shù)據(jù)庫(kù)方面: 1.存儲(chǔ)過(guò)程和函數(shù)的區(qū)別 2.事務(wù)是什么? 3.游標(biāo)的作用?如何知道游標(biāo)已經(jīng)到了最后? 4.觸發(fā)器分為事前觸發(fā)和事后觸發(fā),這兩種觸發(fā)有和區(qū)別。語(yǔ)句級(jí)觸發(fā)和行級(jí)觸發(fā)有何區(qū)別。 1。用C#實(shí)現(xiàn)以下功能 a 產(chǎn)生一個(gè)int數(shù)組,長(zhǎng)度為100,并向其中隨機(jī)插入1-100,并且不能重復(fù)。 b 對(duì)上面生成的數(shù)組排序,需要支持升序、降序兩種順序 2。請(qǐng)說(shuō)明在.net中常用的幾種頁(yè)面間傳遞參數(shù)的方法,并說(shuō)出他們的優(yōu)缺點(diǎn)。 3。請(qǐng)說(shuō)明.net中的錯(cuò)誤處理機(jī)制,并舉例 4。請(qǐng)說(shuō)出強(qiáng)名的含義 5。請(qǐng)列出c#中幾種循環(huán)的方法,并指出他們的不同 6。請(qǐng)指出.net中所有類(lèi)型的基類(lèi) 7。請(qǐng)指出GAC的含義 8。SQL SREVER中,向一個(gè)表中插入了新數(shù)據(jù),如何快捷的得到自增量字段的當(dāng)前值 您在什么情況下會(huì)用到虛方法?它與接口有什么不同? Q:Override與重載有什么區(qū)別? Q:值類(lèi)型與引用類(lèi)型有什么區(qū)別? Q:怎樣理解靜態(tài)變量? Q:向服務(wù)器發(fā)送請(qǐng)求有幾種方式? Q:DataReader與Dataset有什么區(qū)別? Q:如果在一個(gè)B/S結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進(jìn)行處理? Q:用.net做B/S結(jié)構(gòu)的系統(tǒng),您是用幾層結(jié)構(gòu)來(lái)開(kāi)發(fā),每一層之間的關(guān)系以及為什么要這樣分層? Q:軟件開(kāi)發(fā)過(guò)程一般有幾個(gè)階段?每個(gè)階段的作用? Q:微軟推出了一系列的Application Block,請(qǐng)舉出您所知道的Application Block并說(shuō)明其作用? Q:請(qǐng)列舉一些您用到過(guò)的設(shè)計(jì)模式以及在什么情況下使用該模式? Q:您對(duì)WebService的體會(huì)? Q:您對(duì)編程的興趣如何?工作中遇到不懂的問(wèn)題是怎樣去解決的?您一般怎樣去提高自己的編程水平? Q:您離職的原因是什么? Q:通過(guò)超鏈接怎樣傳遞中文參數(shù)? Q:請(qǐng)編程遍歷頁(yè)面上所有TextBox控件并給它賦值為string.Empty? Q:請(qǐng)編程實(shí)現(xiàn)一個(gè)冒泡排序算法? 1、override與重載的區(qū)別 2、.net的錯(cuò)誤處理機(jī)制是什么 3、C#中接口和類(lèi)的異同 4、DataReader和DataSet的異同 1.有哪幾種方法可以實(shí)現(xiàn)一個(gè)類(lèi)存取另外一個(gè)類(lèi)的成員函數(shù)及屬性,并請(qǐng)舉列來(lái)加以說(shuō)明和分析. 2.如果需記錄類(lèi)的實(shí)例個(gè)數(shù),該如何實(shí)現(xiàn),請(qǐng)寫(xiě)一個(gè)簡(jiǎn)單的類(lèi)于以證明. 3.A類(lèi)是B類(lèi)的基類(lèi),并且都有自己的構(gòu)造,析構(gòu)函數(shù),請(qǐng)舉例證明B類(lèi)從實(shí)例化到消亡過(guò)程中構(gòu)造,析構(gòu)函數(shù)的執(zhí)行過(guò)程. 4.需要實(shí)現(xiàn)對(duì)一個(gè)字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續(xù)空格的話(huà),僅保留一個(gè)空格,即允許字符串中間有多個(gè)空格,但連續(xù)的空格數(shù)不可超過(guò)一個(gè). 一.填空題 1.c#中的三元運(yùn)算符是__?:___? 2.當(dāng)整數(shù)a賦值給一個(gè)object對(duì)象時(shí),整數(shù)a將會(huì)被__裝箱(封裝)___? 3.類(lèi)成員有_____種可訪(fǎng)問(wèn)形式? this.;new Class().Method; 4.public static const int A=1;這段代碼有錯(cuò)誤么?是什么? const不能用static修飾 5.float f=-123.567F; int i=(int)f; i的值現(xiàn)在是_____? 123 6.利用operator聲明且僅聲明了“==”,有什么錯(cuò)誤么? 7.委托聲明的關(guān)鍵字是______? delagete 8.用sealed修飾的類(lèi)有什么特點(diǎn)?密封,不能繼承 9.在Asp.net中所有的自定義用戶(hù)控件都必須繼承自________?Control 10.在.Net中所有可序列化的類(lèi)都被標(biāo)記為_(kāi)____? 11.在.Net托管代碼中我們不用擔(dān)心內(nèi)存漏洞,這是因?yàn)橛辛薩_____?gc 12.下面的代碼中有什么錯(cuò)誤嗎?_______ using System; class A { public virtual void F(){ Console.WriteLine(\"A.F\"); } } abstract class B:A { public abstract override void F(); // new public abstract void F(); } 13.當(dāng)類(lèi)T只聲明了私有實(shí)例構(gòu)造函數(shù)時(shí),則在T的程序文本外部,___可以___(可以 or 不可以)從T派生出新的類(lèi),不可以____(可以 or 不可以)直接創(chuàng)建T的任何實(shí)例。 14.下面這段代碼有錯(cuò)誤么? switch (i){ case(): CaseZero(); break; case 1: CaseOne(); break; case 2: dufau< //wrong CaseTwo(); break; } 15.在.Net中,類(lèi)System.Web.UI.page 可以被繼承么?可以 二.簡(jiǎn)答題 1.在c#中using和new這兩個(gè)關(guān)鍵字有什么意義,請(qǐng)寫(xiě)出你所知道的意義?using 指令 和語(yǔ)句 new 創(chuàng)建實(shí)例 new 隱藏基類(lèi)中方法 4.談?wù)勵(lì)惡徒Y(jié)構(gòu)的區(qū)別?類(lèi)是引用類(lèi)型、結(jié)構(gòu)是值類(lèi)型 5.一個(gè)長(zhǎng)度為10000的字符串,通過(guò)隨機(jī)從a-z中抽取10000個(gè)字符組成。請(qǐng)用c#語(yǔ)言編寫(xiě)主要程序來(lái)實(shí)現(xiàn)。 6.對(duì)于這樣的一個(gè)枚舉類(lèi)型: enum Color:byte{ Red, Green, Blue, Orange } string[] ss=Enum.GetNames(typeof(Color)); byte[] bb=Enum.GetValues(typeof(Color)); 試寫(xiě)一段程序顯示出枚舉類(lèi)型中定義的所有符號(hào)名稱(chēng)以及它們對(duì)應(yīng)的數(shù)值。 7.您了解設(shè)計(jì)模式么?請(qǐng)列出您所知道的設(shè)計(jì)模式的名稱(chēng)。 // 8.請(qǐng)?jiān)赟QL Server中設(shè)計(jì)表來(lái)保存一個(gè)樹(shù)狀結(jié)構(gòu)的組織結(jié)構(gòu)圖(假設(shè)結(jié)構(gòu)圖中只有名稱(chēng)這一項(xiàng)內(nèi)容需要保存),如果我想查詢(xún)某一職位下的所有職位,用一個(gè)存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn),你有什么思路? 9.什么叫做SQL注入,如何防止?請(qǐng)舉例說(shuō)明。 10.下面這段代碼輸出什么?為什么? int i=5; int j=5; if (Object.ReferenceEquals(i,j)) Console.WriteLine(\"Equal\"); else Console.WriteLine(\"Not Equal\"); //不相等,因?yàn)楸容^的是對(duì)象 1.寫(xiě)一個(gè)實(shí)現(xiàn)對(duì)一段字符串翻轉(zhuǎn)的方法,附加一些條件,如其中包括“,”、“.”,對(duì)其設(shè)計(jì)測(cè)試用 例 。 2.對(duì)一支紙杯設(shè)計(jì)測(cè)試用例(可以是廣義的杯,不一定是某一支特定功能的杯) 開(kāi)發(fā)語(yǔ)言概念題 3.什么是反射? 4.用Singleton如何寫(xiě)設(shè)計(jì)模式 5.C#中的垃圾回收機(jī)制是怎樣的? 6.什么是Application pool? 7.鏈表和數(shù)組的區(qū)別,各有什么優(yōu)缺點(diǎn). 8.Remoting在客戶(hù)端服務(wù)器怎么實(shí)現(xiàn) ? 9.什么是友元函數(shù)? 10.用標(biāo)準(zhǔn)C如何實(shí)現(xiàn)多態(tài)? 11.什么是虛函數(shù)? 12.什么是抽象函數(shù)? 13.什么是內(nèi)存泄漏,怎樣最簡(jiǎn)單的方法判斷被存泄漏 ? 英語(yǔ)題 14.用英文介紹一下使用C#/C++做的項(xiàng)目,主要功能 15.如果要與美國(guó)開(kāi)電話(huà)會(huì)議,會(huì)如何與美國(guó)的工程師溝通 16.如果老板認(rèn)為你的技術(shù)落后,你會(huì)怎么回答 數(shù)據(jù)庫(kù)知識(shí)題 17.使用什么工具來(lái)調(diào)用存儲(chǔ)過(guò)程 18.SQL Server的兩種索引是何形式?索引的作用?索引的優(yōu)缺點(diǎn)? 19.觸發(fā)器的作用 其它知識(shí)題及問(wèn)題 20.什么是Web Service? 21.什么是XML? 22.Socket怎么實(shí)現(xiàn)? 原文地址:【.NET面試題】C#系列2 【.NET面試題】C#系列2 (轉(zhuǎn)載) 2008-07-13 11:23 值類(lèi)型和引用類(lèi)型的區(qū)別? 答:基于值類(lèi)型的變量直接包含值。將一個(gè)值類(lèi)型變量賦給另一個(gè)值類(lèi)型變量時(shí),將復(fù)制包含的值。這與引用類(lèi)型變量的賦值不同,引用類(lèi)型變量的賦值只復(fù)制對(duì)對(duì)象的引用,而不復(fù)制對(duì)象本身。所有的值類(lèi)型均隱式派生自 System.ValueType。與引用類(lèi)型不同,從值類(lèi)型不可能派生出新的類(lèi)型。但與引用類(lèi)型相同的是,結(jié)構(gòu)也可以實(shí)現(xiàn)接口。與引用類(lèi)型不同,值類(lèi)型不可能包含 null 值。然而,可空類(lèi)型功能允許將 null 賦給值類(lèi)型。 每種值類(lèi)型均有一個(gè)隱式的默認(rèn)構(gòu)造函數(shù)來(lái)初始化該類(lèi)型的默認(rèn)值。 值類(lèi)型主要由兩類(lèi)組成:結(jié)構(gòu)、枚舉 結(jié)構(gòu)分為以下幾類(lèi):Numeric(數(shù)值)類(lèi)型、整型、浮點(diǎn)型、decimal、bool、用戶(hù)定義的結(jié)構(gòu)。 引用類(lèi)型的變量又稱(chēng)為對(duì)象,可存儲(chǔ)對(duì)實(shí)際數(shù)據(jù)的引用。聲明引用類(lèi)型的關(guān)鍵字:class、interface、delegate、內(nèi)置引用類(lèi)型: object、string 如何理解委托 答:委托類(lèi)似于 C++ 函數(shù)指針,但它是類(lèi)型安全的。委托允許將方法作為參數(shù)進(jìn)行傳遞。委托可用于定義回調(diào)方法。委托可以鏈接在一起;例如,可以對(duì)一個(gè)事件調(diào)用多個(gè)方法。方法不需要與委托簽名精確匹配。有關(guān)更多信息,請(qǐng)參見(jiàn)協(xié)變和逆變。C# 2.0 版引入了匿名方法的概念,此類(lèi)方法允許將代碼塊作為參數(shù)傳遞,以代替單獨(dú)定義的方法。 C#中的接口和類(lèi)有什么異同。 答:異:不能直接實(shí)例化接口。接口不包含方法的實(shí)現(xiàn)。接口、類(lèi)和結(jié)構(gòu)可從多個(gè)接口繼承。但是C# 只支持單繼承:類(lèi)只能從一個(gè)基類(lèi)繼承實(shí)現(xiàn)。類(lèi)定義可在不同的源文件之間進(jìn)行拆分。 同:接口、類(lèi)和結(jié)構(gòu)可從多個(gè)接口繼承。接口類(lèi)似于抽象基類(lèi):繼承接口的任何非抽象類(lèi)型都必須實(shí)現(xiàn)接口的所有成員。接口可以包含事件、索引器、方法和屬性。一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。 ASp.net的身份驗(yàn)證方式有哪些 答:Windows 身份驗(yàn)證提供程序: 提供有關(guān)如何將 Windows 身份驗(yàn)證與 Microsoft Internet 信息服務(wù) (IIS) 身份驗(yàn)證結(jié)合使用來(lái)確保 ASp.NET 應(yīng)用程序安全的信息。 Forms 身份驗(yàn)證提供程序: 提供有關(guān)如何使用您自己的代碼創(chuàng)建應(yīng)用程序特定的登錄窗體并執(zhí)行身份驗(yàn)證的信息。使用 Forms 身份驗(yàn)證的一種簡(jiǎn)便方法是使用 ASp.NET 成員資格和 ASp.NET 登錄控件,它們一起提供了一種只需少量或無(wú)需代碼就可以收集、驗(yàn)證和管理用戶(hù)憑據(jù)的方法。 passport 身份驗(yàn)證提供程序: 提供有關(guān)由 Microsoft 提供的集中身份驗(yàn)證服務(wù)的信息,該服務(wù)為成員站點(diǎn)提供單一登錄和核心配置 活動(dòng)目錄的作用 答:Active Directory存儲(chǔ)了有關(guān)網(wǎng)絡(luò)對(duì)象的信息,并且讓管理員和用戶(hù)能夠輕松地查找和使用這些信息。Active Directory使用了一種結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)方式,并以此作為基礎(chǔ)對(duì)目錄信息進(jìn)行合乎邏輯的分層組織。 解釋一下UDDI、WSDL的意義及其作用 答:UDDI:統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議(UDDI, Universa Description, Discovery and Integration)是一套基于Web的、分布式的、為Web服務(wù)提供的信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時(shí)也包含一組使企業(yè)能將自身提供的Web服務(wù)注冊(cè)以使得別的企業(yè)能夠發(fā)現(xiàn)的訪(fǎng)問(wèn)協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。UDDI 提供了一組基于標(biāo)準(zhǔn)的規(guī)范用于描述和發(fā)現(xiàn)服務(wù),還提供了一組基于因特網(wǎng)的實(shí)現(xiàn)。 WSDL:WSDL描述Web服務(wù)的公共接口。這是一個(gè)基于XML的關(guān)于如何與Web服務(wù)通訊和使用的服務(wù)描述; 服務(wù) URL 和命名空間 : 網(wǎng)絡(luò)服務(wù)的類(lèi)型(可能還包括 SOAp 的函數(shù)調(diào)用,正像我所說(shuō)過(guò)的,WSDL 足夠自如地去描述網(wǎng)絡(luò)服務(wù)的廣泛內(nèi)容)。 有效函數(shù)列表,每個(gè)函數(shù)的參數(shù),每個(gè)參數(shù)的類(lèi)型 ,每個(gè)函數(shù)的返回值及其數(shù)據(jù)類(lèi)型。什么是SOAp 答:SOAp(Simpe Object Access protoco )簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議是在分散或分布式的環(huán)境中交換信息并執(zhí)行遠(yuǎn)程過(guò)程調(diào)用的協(xié)議,是一個(gè)基于XML的協(xié)議。使用SOAp,不用考慮任何特定的傳輸協(xié)議(最常用的還是HTTp協(xié)議),可以允許任何類(lèi)型的對(duì)象或代碼,在任何平臺(tái)上,以任何一直語(yǔ)言相互通信。 SOAp 是一種輕量級(jí)協(xié)議,用于在分散型、分布式環(huán)境中交換結(jié)構(gòu)化信息。 SOAp 利用 XML 技術(shù)定義一種可擴(kuò)展的消息處理框架,它提供了一種可通過(guò)多種底層協(xié)議進(jìn)行交換的消息結(jié)構(gòu)。這種框架的設(shè)計(jì)思想是要獨(dú)立于任何一種特定的編程模型和其他特定實(shí)現(xiàn)的語(yǔ)義。 SOAp 定義了一種方法以便將 XML 消息從 A 點(diǎn)傳送到 B 點(diǎn)。為此,它提供了一種基于 XML且具有以下特性的消息處理框架:1) 可擴(kuò)展,2) 可通過(guò)多種底層網(wǎng)絡(luò)協(xié)議使用,3) 獨(dú)立于編程模型。 如何部署一個(gè)ASp.net頁(yè)面 答:VS 2005和VS 2003都有發(fā)布機(jī)制。2003可以發(fā)布然后再?gòu)?fù)制部署。VS2005基本上可以直接部署到對(duì)應(yīng)位置。 如何理解.net中的垃圾回收機(jī)制 答:.NET Framework 的垃圾回收器管理應(yīng)用程序的內(nèi)存分配和釋放。每次您使用 new 運(yùn)算符創(chuàng)建對(duì)象時(shí),運(yùn)行庫(kù)都從托管堆為該對(duì)象分配內(nèi)存。只要托管堆中有地址空間可用,運(yùn)行庫(kù)就會(huì)繼續(xù)為新對(duì)象分配空間。但是,內(nèi)存不是無(wú)限大的。最終,垃圾回收器必須執(zhí)行回收以釋放一些內(nèi)存。垃圾回收器優(yōu)化引擎根據(jù)正在進(jìn)行的分配情況確定執(zhí)行回收的最佳時(shí)間。當(dāng)垃圾回收器執(zhí)行回收時(shí),它檢查托管堆中不再被應(yīng)用程序使用的對(duì)象并執(zhí)行必要的操作來(lái)回收它們占用的內(nèi)存。 概述.NET中的GC機(jī)制。 答:GC的全稱(chēng)是garbage collection,中文名稱(chēng)垃圾回收,是.NET中對(duì)內(nèi)存管理的一種功能。垃圾回收器跟蹤并回收托管內(nèi)存中分配的對(duì)象,定期執(zhí)行垃圾回收以回收分配給沒(méi)有有效引用的對(duì)象的內(nèi)存。當(dāng)使用可用內(nèi)存不能滿(mǎn)足內(nèi)存請(qǐng)求時(shí),GC會(huì)自動(dòng)進(jìn)行。 在進(jìn)行垃圾回收時(shí),垃圾回收器會(huì)首先搜索內(nèi)存中的托管對(duì)象,然后從托管代碼中搜索被引用的對(duì)象并標(biāo)記為有效,接著釋放沒(méi)有被標(biāo)記為有效的對(duì)象并收回內(nèi)存,最后整理內(nèi)存將有效對(duì)象挪動(dòng)到一起 ASp.NET中常見(jiàn)內(nèi)置對(duì)象? 答:Response、Request、Server、Session、Application、Cookie 死鎖的必要條件?怎么克服? 答:系統(tǒng)的資源不足,進(jìn)程的推進(jìn)的順序不合適,資源分配不當(dāng),一個(gè)資源每次只能被一個(gè)進(jìn)程使用,一個(gè)資源請(qǐng)求資源時(shí),而此時(shí)這個(gè)資源已阻塞,對(duì)已獲得資源不放,進(jìn)程獲得資源時(shí),未使用完前,不能強(qiáng)行剝奪。 接口是否可以繼承接口?抽象類(lèi)是否可以實(shí)現(xiàn)接口?抽象類(lèi)是否可以繼承實(shí)體類(lèi)? 答:接口是可以繼承接口的,抽象類(lèi)是可以實(shí)現(xiàn)接口的,抽象類(lèi)可以繼承實(shí)體類(lèi),但是有個(gè)條件,條件是,實(shí)體類(lèi)必須要有明確的構(gòu)造函數(shù)。 構(gòu)造器Constructor是否可以被繼承?是否可以被Override? 答:Constructor不可以被繼承,因此不能被重寫(xiě)(Overriding),但可以被重載(Overloading). 是否可以繼承String類(lèi)? 答:因?yàn)镾tring類(lèi)是final類(lèi)所以不可以繼承string類(lèi)。 當(dāng)一個(gè)線(xiàn)程進(jìn)入一個(gè)對(duì)象的方法后,其它線(xiàn)程是否可以進(jìn)入該對(duì)象的方法? 答:不可以,一個(gè)對(duì)象的方法只能由一個(gè)線(xiàn)程訪(fǎng)問(wèn)。 用最有效的方法算出2乘以8等于幾? 答:2<<3. C#是否可以對(duì)內(nèi)存直接進(jìn)行操作? 答:C#是可以對(duì)內(nèi)存進(jìn)行直接操作的,雖然很少用到指針,但是C#是可以使用指針的,在用的時(shí)候需要在前邊加unsafe,,在.net中使用了垃圾回收機(jī)制(GC)功能,它替代了程序員,不過(guò)在C#中不可以直接使用finalize方法,而是在析構(gòu)函數(shù)中調(diào)用基類(lèi)的finalize()方法。 數(shù)組有沒(méi)有Length()這和方法?string有沒(méi)有這個(gè)方法? 答:數(shù)組中沒(méi)有這個(gè)方法,但有這個(gè)屬性,string中有這個(gè)方法。 Error和Exception有是區(qū)別? 答:error表示恢復(fù)不是不可能,但是很困難,exception表示一種實(shí)際或?qū)崿F(xiàn)問(wèn)題,它表示程序運(yùn)行正常不可以發(fā)生的。 HashMap和Hashtable區(qū)別? 答:HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn),非線(xiàn)程安全的實(shí)現(xiàn)他們都實(shí)現(xiàn)了map接口,主要區(qū)別是HashMap鍵值可以為空null,效率可以高于Hashtable。 Collection和Collections的區(qū)別? 答:Collection是集合類(lèi)的上級(jí)接口,Collections是針對(duì)集合類(lèi)的一個(gè)幫助類(lèi),它提供一系列靜態(tài)方法來(lái)實(shí)現(xiàn)對(duì)各種集合的搜索,排序,線(xiàn)程安全化操作。 Override, Overload,的區(qū)別? 答:Override是重寫(xiě)的意思,它表示重寫(xiě)基類(lèi)的方法,而且方法的名稱(chēng),返回類(lèi)型,參數(shù)類(lèi)型,參數(shù)個(gè)數(shù)要與基類(lèi)相同。 Overload是重載是意思,它也表示重寫(xiě)基類(lèi)的方法,但是只要方法名相同,別的可以不同。 在一個(gè)BS結(jié)構(gòu)中需要傳遞變量值時(shí),不能使用session,cookie,application,你有幾中方法? 答:this.server.Transfer,Querystring. C#種索引器實(shí)現(xiàn)過(guò)程,是否只能根據(jù)數(shù)字索引? 答:不是的,可以是任意類(lèi)型。 Const和ReadOnly? 答:Const用來(lái)申明編程時(shí)申明常量,ReadOnly用來(lái)申明運(yùn)行時(shí)常量。 UDp和TCp連接有和異同? 答:TCp是傳輸控制協(xié)議,提供的是面向連接的,是可靠的,字節(jié)流服務(wù),當(dāng)用戶(hù)和服務(wù)器彼此進(jìn)行數(shù)據(jù)交互的時(shí)候,必須在他們數(shù)據(jù)交互前要進(jìn)行TCp連接之后才能傳輸數(shù)據(jù)。TCp提供超時(shí)重?fù),檢驗(yàn)數(shù)據(jù)功能。 UDp是用戶(hù)數(shù)據(jù)報(bào)協(xié)議,是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的傳輸協(xié)議,是不可靠的連接。 進(jìn)程和線(xiàn)程分別該怎么理解? 答:進(jìn)程是比線(xiàn)程大的程序運(yùn)行單元,都是由操作系統(tǒng)所體會(huì)的系統(tǒng)運(yùn)行單元,一個(gè)程序中至少要有一個(gè)進(jìn)程,有一個(gè)進(jìn)程中,至少要有一個(gè)線(xiàn)程,線(xiàn)程的劃分尺度要比進(jìn)程要小,進(jìn)程擁有獨(dú)立的內(nèi)存單元,線(xiàn)程是共享內(nèi)存,從而極大的提高了程序的運(yùn)行效率同一個(gè)進(jìn)程中的多個(gè)線(xiàn)程可以并發(fā)執(zhí)行。 在.NET中所有類(lèi)的基類(lèi)是? 答:object。 能用foreach遍歷訪(fǎng)問(wèn)的對(duì)象需要實(shí)現(xiàn)? 答:需要實(shí)現(xiàn)IEnumerable接口和GetEnumerator ()方法。 Heap與stack的差別? 答:Heap是堆,空間是由手動(dòng)操作分配和釋放的,它的存儲(chǔ)區(qū)很大的自由存儲(chǔ)區(qū)。 Stack是棧,是由是操作系統(tǒng)自動(dòng)分配和釋放的,棧上的空間是有限的。程序在編譯期間變量和函數(shù)分配內(nèi)存都是在棧上進(jìn)行的,且在運(yùn)行時(shí)函數(shù)調(diào)用時(shí)的參數(shù)的傳遞也是在棧上進(jìn)行的。 請(qǐng)編程遍歷頁(yè)面上所有TextBox控件并給它賦值為string.Empty? 答:foreach (System.Windows.Forms.Control control in this.Controls) { if (control is System.Windows.Forms.TextBox) { System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; tb.Text = String.Empty ; } } 原文地址:【.NET面試題】.NET牛人應(yīng)該知道些什么? 【.NET面試題】.NET牛人應(yīng)該知道些什么? 2008-07-13 11:32 .NET牛人應(yīng)該知道些什么? A、任何一個(gè)使用.NET的人 1、描述線(xiàn)程與進(jìn)程的區(qū)別? 2、什么是Windows服務(wù),它的生命周期與標(biāo)準(zhǔn)的EXE程序有什么不同 ? 3、Windows上的單個(gè)進(jìn)程所能訪(fǎng)問(wèn)的最大內(nèi)存量是多少?它與系統(tǒng)的最大虛擬內(nèi)存一樣嗎?這對(duì)于系統(tǒng)設(shè)計(jì)有什么影響? 4、EXE和DLL之間的區(qū)別是什么? 5、什么是強(qiáng)類(lèi)型,什么是弱類(lèi)型?哪種更好些?為什么? 6、pID是什么?在做系統(tǒng)的故障排除時(shí)如何使用它? 7、單個(gè)TCp/Ip端口上能夠偵聽(tīng)多少個(gè)進(jìn)程? 8、什么是GAC?它解決了什么問(wèn)題? B、中級(jí).NET開(kāi)發(fā)人員 1、闡述面向接口、面向?qū)ο蟆⒚嫦蚍矫婢幊痰膮^(qū)別 2、什么是Interface?它與Class有什么區(qū)別? 3、什么是反射? 4、使用ASMX的XML Web服務(wù)與使用SOAp的.NET Remoting的區(qū)別? 5、類(lèi)型系統(tǒng)是由XMLSchema表示的嗎?CLS是XMLSchema表示的嗎? 6、從概念上闡述前期綁定(early-binding)和后期綁定(late-binding)的區(qū)別? 7、調(diào)用Assembly.Load算靜態(tài)引用還是動(dòng)態(tài)引用? 8、何時(shí)使用Assembly.LoadFrom?何時(shí)使用Assembly.LoadFile? 9、什么叫Assembly Qualified Name?它是一個(gè)文件名嗎?它有什么不同? Assembly.Load(\"foo.dll\"); 這句話(huà)是否正確? 10、做強(qiáng)簽名的assembly與不做強(qiáng)簽名的assembly有什么不同? 11、DateTime是否可以為null? 12、什么叫JIT?什么是NGEN?它們分別有什么限制和好處? 13、.NET CLR中一代的垃圾收集器是如何管理對(duì)象的生命周期的?什么叫非確定性終結(jié)? Finalize()和Dispose()之間的區(qū)別? 14、using() 語(yǔ)法有用嗎?什么是IDisposable?它是如何實(shí)現(xiàn)確定性終結(jié)的。 15、tasklist /m \"mscor*\" 這句命令是干嘛的? 16、in-proc和out-of-proc的區(qū)別 .NET里的哪一項(xiàng)技術(shù)能夠?qū)崿F(xiàn)out-of-proc通訊? 17、當(dāng)你在ASp.NET中運(yùn)行一個(gè)組件時(shí),它在Windows Xp, Windows 2000, Windows 2003上分別跑在哪個(gè)進(jìn)程里面? C、高級(jí)開(kāi)發(fā)人員/架構(gòu)師 1、DateTime.parse(myString); 這行代碼有什么問(wèn)題? 2、pDB是什么東西? 在調(diào)試中它應(yīng)該放在哪里? 3、什么叫圈復(fù)雜度(cyclomatic complexity)?為什么它很重要? 4、寫(xiě)一個(gè)標(biāo)準(zhǔn)的lock(),在訪(fǎng)問(wèn)變量的前后創(chuàng)建臨界區(qū),要有\(zhòng)"雙重檢查\", 什么叫FullTrust?放入GAC的assembly是否是FullTrust的? 代碼加上需要安全權(quán)限的特性有什么好處? 5、gacutil /l ¦ find /i \"Corillian\" 這句命令的作用是什么? sn -t foo.dll 這句命令是干嘛的? 6、DCOM需要防火墻打開(kāi)哪些端口?端口135是干嘛用的? 7、對(duì)比OOp和SOA,它們的目的分別是什么? 8、XmlSerializer是如何工作的?使用這個(gè)類(lèi)的進(jìn)程需要什么ACL權(quán)限? 9、為什么不提倡catch(Exception)? Debug.Write和Trace.Write有什么不同?何時(shí)應(yīng)該使用哪一個(gè)? Debug Build和Release Build的區(qū)別,是否會(huì)有明顯的速度變化?請(qǐng)說(shuō)明理由。 10、JIT是以assembly為單位發(fā)生還是以方法為單位發(fā)生?這對(duì)于工作區(qū)有何影響? 11、對(duì)比抽象基類(lèi)和接口的使用 a.Equals(b)和a == b一樣嗎? 在對(duì)象比較中,對(duì)象一致和對(duì)象相等分別是指什么? 12、在.NET中如何實(shí)現(xiàn)深拷貝(deep copy)? 請(qǐng)解釋一下IClonable 什么叫裝箱? string是值類(lèi)型還是引用類(lèi)型? 13、XmlSerializer使用的針對(duì)屬性的模式有什么好處?解決了什么問(wèn)題? 14、為什么不應(yīng)該在.NET中使用out參數(shù)?它究竟好不好? 特性能夠放到某個(gè)方法的參數(shù)上?如果可以,這有什么用? D、C# 組件開(kāi)發(fā)人員 1、什么時(shí)候使用override?什么時(shí)候使用new? 什么叫shadowing? 2、解釋virtual、sealed、override和abstract的區(qū)別 Foo.Bar, Version=2.0.205.0, Culture=neutral, publicKeyToken=593777ae2d274679d 解釋這個(gè)字符串每個(gè)部分的重要性和作用 3、解釋public、protected、private和internal的區(qū)別 使用primary Interop Assembly (pIA)有什么好處? 4、NUnit是通過(guò)什么機(jī)制獲知需要測(cè)試哪些方法的? 5、catch(Exception e){throw e;}和catch(Exception e){throw;}的區(qū)別 6、typeof(foo)和myFoo.GetType()的區(qū)別? 7、public class c{ public c(string a) : this() {;}; public c() {;} } 解釋第一個(gè)構(gòu)造函數(shù)中發(fā)生了什么? 這個(gè)構(gòu)造函數(shù)有什么用? 8、this是干嘛用的?能夠用在static方法中? E、ASp.NET (UI)開(kāi)發(fā)人員 1、闡述一個(gè)基于瀏覽器的Form pOST如何變成一個(gè)服務(wù)器端的事件,如Button1_OnClick。 2、什么是postBack? 什么是ViewState? 它是否被編碼過(guò)? 是否被加密過(guò)?誰(shuí)會(huì)使用ViewState? 3、 <machinekey>元素是干嘛用的?它用于哪兩項(xiàng)ASp.NET技術(shù)? 4、說(shuō)出ASp.NET 1.1中的3種Session State提供程序以及它們的優(yōu)缺點(diǎn)? 5、什么叫Web Gardening? 在設(shè)計(jì)中如何使用它? 假設(shè)有一個(gè)ASp.NET應(yīng)用程序,那么單獨(dú)一個(gè)進(jìn)程中允許多少應(yīng)用程序?qū)ο?那兩個(gè)進(jìn)程呢?啟用了Web Gardening的2個(gè)進(jìn)程呢?這對(duì)設(shè)計(jì)有何影響? 6、ASp.NET會(huì)重用多個(gè)請(qǐng)求之間的線(xiàn)程嗎?是否每個(gè)HttpRequest都有自己的線(xiàn)程? 7、你是否應(yīng)該用ASp.NET的Thread Local存儲(chǔ)? [ThreadStatic]屬性在ASp.NET中有用嗎?它有沒(méi)有副作用?是好是壞? 8、如何使用HttpHandler簡(jiǎn)化現(xiàn)有的為.aspx頁(yè)面提供驗(yàn)證圖片的設(shè)計(jì) HttpModule訂閱的是什么類(lèi)型的事件? 這對(duì)于實(shí)現(xiàn)有何影響?如果不打算重新編譯ASp.NE應(yīng)用程序,應(yīng)該怎么做? 9、說(shuō)出表示任意一個(gè)終端(URL)的方式,以及ASp.NET中把請(qǐng)求路由到那個(gè)終點(diǎn)的方式 解釋cookie的工作原理。給出一個(gè)濫用Cookie的例子。 10、解釋HttpRequest.ValidateInput()的重要性? 哪些數(shù)據(jù)是通過(guò)HTTp Header傳遞的? 對(duì)比HTTp動(dòng)詞GET和pOST? 11、什么是HEAD? 說(shuō)出至少6個(gè)HTTp狀態(tài)碼以及它們的含義 12、if-not-modified-since的工作原理是什么? 用ASp.NET如何實(shí)現(xiàn)它? 13、解釋 <@OutputCache%>和如何使用VaryByparam、VaryByHeader. VaryByCustom是如何工作的? 14、如何通過(guò)q=? (除了q=5)來(lái)實(shí)現(xiàn)ASp.NET HTML輸出緩沖和緩沖過(guò)期(比如http://localhost/page.aspx?q=5)? F、XML開(kāi)發(fā)人員 1、XML命名空間的作用? 何時(shí)適合使用DOM?何時(shí)不適合?有沒(méi)有尺度限制? 什么是WS-I基本配置?它重要在哪里? 寫(xiě)一個(gè)小XML文檔,其中使用的是默認(rèn)的命名空間,以及一個(gè)合法的(前綴)命名空間,其中要有分別屬性這兩個(gè)命名空間的元素 元素和特性的基本區(qū)別在哪里? 格式完好的XML和有效的XML有什么區(qū)別? 2、.NET中如何驗(yàn)證XML? 3、myXmlDocument.SelectNodes(\"http://mynode\"); 為什么這句代碼不好?什么時(shí)候它是好的? 4、拉式解析(XmlReader)與事件讀取器(Sax)的區(qū)別 XpathDocument和XmlDocument的區(qū)別? 在何種情況下應(yīng)該用哪一個(gè)? 5、“XML片斷”與“XML文檔”有什么區(qū)別 什么叫格式規(guī)范的XML? 6、XML InfoSet規(guī)范與Xml DOM有什么不同? InfoSet是要解決什么問(wèn)題? 比較DTD和XSD,它們的相似點(diǎn)與區(qū)別分別是什么?哪個(gè)更好些?為什么? 7、System.Xml支持DTD嗎?如果支持,如何使用? XML Schema能夠表示為對(duì)象圖?對(duì)象圖能夠表示為XML Schema? 原文地址:t_sql中的COUNT函數(shù) 1 count函數(shù)的定義 count函數(shù)的定義可見(jiàn)MSDN。定義如下: view source print?
view source print?
view source print?
view source print?
view source print?
view source print?
view source print?
view source print?
結(jié)果如下: 如結(jié)果所示,COUNT(*),COUNT(2)和COUNT(3)是一模一樣的。而COUNT(c1)顯然過(guò)濾掉了NULL值。 注意,COUNT 的參數(shù)expression可以為常量(像上面的2,3…),表的列,函數(shù),還可以是語(yǔ)句,具體可見(jiàn)MSDN的定義。下面展示了這個(gè)應(yīng)用。 如果想為cte1中列Description中有字符串\fox’進(jìn)行計(jì)數(shù),典型的做法是: view source print?
這種做法是where中過(guò)濾,另外一種方式是在expression中定義查找條件: view source print?
如果description列中沒(méi)有字符串\fox\那么pATINDEX函數(shù)返回的是0,NULLIF函數(shù)因?yàn)閮蓚(gè)參數(shù)相等,那么結(jié)果是NULL,因?yàn)镹ULL不會(huì)參與計(jì)數(shù),所以列中沒(méi)有\(zhòng)fox’的行不會(huì) 參與計(jì)數(shù),達(dá)到了查找的目的。 當(dāng)然,我們還可在expression中使用case表達(dá)式: view source print?
注意ELSE語(yǔ)句后面必須是NULL,如果是非NULL,ELSE語(yǔ)句也會(huì)參與COUNT計(jì)數(shù)的。 2 在count函數(shù)后接聚合窗口函數(shù)OVER。注意聚合窗口函數(shù)中是不能有ORDER BY,ORDER BY只能出現(xiàn)在排名函數(shù)的over子句中。OVER字句的定義見(jiàn)MSDN。 view source print?
view source print?
view source print?
view source print?
可以看出,在使用OVER子句時(shí)候,COUNT還是遵循了最基本的準(zhǔn)則,COUNT(*)會(huì)對(duì)null行計(jì)數(shù),而COUNT(expression)則不會(huì)。 以上在COUNT 的expression中設(shè)置條件顯然不是一種很優(yōu)化的方式,因?yàn)檫@種方式會(huì)首先讀取表中的所有數(shù)據(jù),是對(duì)表進(jìn)行掃描,而在where子句中設(shè)置條件進(jìn)行過(guò)濾是一種很好的方式。因?yàn)閺倪壿嬌现v,where先于select執(zhí)行,所有數(shù)據(jù)庫(kù)引擎只會(huì)讀取部分?jǐn)?shù)據(jù),不是讀取所有數(shù)據(jù)。如果要對(duì)以表中c1列的null進(jìn)行統(tǒng)計(jì),可以有兩種方式: view source print?
或者: view source print?
|
【net筆試題】相關(guān)文章:
大班筆的教案12-22
筆的世界教學(xué)反思02-19
《各種各樣的筆》教案03-08
各種各樣的筆教案03-27
數(shù)字筆試題04-06
C 筆試題04-06
筆試題(循環(huán))04-06
筆的世界教學(xué)反思8篇02-26
國(guó)網(wǎng)筆試題04-06
職場(chǎng)禮儀試題及答案03-28