




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1.面向?qū)ο蟮乃枷胫饕ㄊ裁矗?奇樂(lè)滋 文庫(kù)含有大量你喜歡的資料,趕快來(lái)看看那吧答:任何事物都可以理解為對(duì)象,其主要特征: 繼承。封裝。多態(tài)。特點(diǎn):代碼好維護(hù),安全,隱藏信息2.什么是ASP.net中的用戶控件答:擴(kuò)展名為*.ascx,跟*.aspx在結(jié)構(gòu)上相似,是指頁(yè)面中加載的功能塊,只是用戶控件不能單獨(dú)作為頁(yè)面運(yùn)行,必須嵌入到*.aspx頁(yè)面或其它用戶控件中使用。3.什么叫應(yīng)用程序域?什么是受管制的代碼?什么是強(qiáng)類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別作何解釋?答:應(yīng)用程序域?yàn)榘踩?、可靠性、版本控制以及卸載程序集提供了隔離邊界。應(yīng)用程序域通常由運(yùn)行庫(kù)宿主創(chuàng)建,
2、運(yùn)行庫(kù)宿主負(fù)責(zé)在運(yùn)行應(yīng)用程序之前引導(dǎo)公共語(yǔ)言運(yùn)行庫(kù)。應(yīng)用程序域提供了一個(gè)更安全、用途更廣的處理單元,公共語(yǔ)言運(yùn)行庫(kù)可使用該單元提供應(yīng)用程序之間的隔離。托管代碼為使用基于公共語(yǔ)言運(yùn)行庫(kù)的語(yǔ)言編譯器開(kāi)發(fā)的代碼稱為托管代碼;托管代碼具有許多優(yōu)點(diǎn),例如:跨語(yǔ)言集成、跨語(yǔ)言異常處理、增強(qiáng)的安全性、版本控制和部署支持、簡(jiǎn)化的組件交互模型、調(diào)試和分析服務(wù)等。裝箱和拆箱使值類型能夠被視為對(duì)象。對(duì)值類型裝箱將把該值類型打包到 Object 引用類型的一個(gè)實(shí)例中。這使得值類型可以存儲(chǔ)于垃圾回收堆中。拆箱將從對(duì)象中提取值類型。重載:每個(gè)類型成員都有一個(gè)唯一的簽名。方法簽名由方法名稱和一個(gè)參數(shù)列表(方法的參數(shù)的順序和
3、類型)組成。只要簽名不同,就可以在一種類型內(nèi)定義具有相同名稱的多種方法。當(dāng)定義兩種或多種具有相同名稱的方法時(shí),就稱作重載。CTS通用類型系統(tǒng) (common type system):一種確定公共語(yǔ)言運(yùn)行庫(kù)如何定義、使用和管理類型的規(guī)范。CLR公共語(yǔ)言運(yùn)行庫(kù):.NET Framework 提供了一個(gè)稱為公共語(yǔ)言運(yùn)行庫(kù)的運(yùn)行時(shí)環(huán)境,它運(yùn)行代碼并提供使開(kāi)發(fā)過(guò)程更輕松的服務(wù)。CLS公共語(yǔ)言規(guī)范:要和其他對(duì)象完全交互,而不管這些對(duì)象是以何種語(yǔ)言實(shí)現(xiàn)的,對(duì)象必須只向調(diào)用方公開(kāi)那些它們必須與之互用的所有語(yǔ)言的通用功能。為此定義了公共語(yǔ)言規(guī)范 (CLS),它是許多應(yīng)用程序所需的一套基本語(yǔ)言功能。強(qiáng)類型:C#
4、 是強(qiáng)類型語(yǔ)言;因此每個(gè)變量和對(duì)象都必須具有聲明類型。4.列舉一下你所了解的XML技術(shù)及其應(yīng)用答:保存配置,站與站之間的交流,WEB SERVICE。以及與數(shù)據(jù)庫(kù)的數(shù)據(jù)交互等地方都要用它.5.值類型和引用類型的區(qū)別?答:基于值類型的變量直接包含值。將一個(gè)值類型變量賦給另一個(gè)值類型變量時(shí),將復(fù)制包含的值。這與引用類型變量的賦值不同,引用類型變量的賦值只復(fù)制對(duì)對(duì)象的引用,而不復(fù)制對(duì)象本身。所有的值類型均隱式派生自 System.ValueType。與引用類型不同,從值類型不可能派生出新的類型。但與引用類型相同的是,結(jié)構(gòu)也可以實(shí)現(xiàn)接口。與引用類型不同,值類型不可能包含 null 值。然而,可空類型功
5、能允許將 null 賦給值類型。每種值類型均有一個(gè)隱式的默認(rèn)構(gòu)造函數(shù)來(lái)初始化該類型的默認(rèn)值。值類型主要由兩類組成:結(jié)構(gòu)、枚舉結(jié)構(gòu)分為以下幾類:Numeric(數(shù)值)類型、整型、浮點(diǎn)型、decimal、bool、用戶定義的結(jié)構(gòu)。引用類型的變量又稱為對(duì)象,可存儲(chǔ)對(duì)實(shí)際數(shù)據(jù)的引用。聲明引用類型的關(guān)鍵字:class、interface、delegate、內(nèi)置引用類型: object、strin6.ADO.net中常用的對(duì)象有哪些?分別描述一下。答:Connection 打開(kāi)數(shù)據(jù)庫(kù)連接Command 執(zhí)行數(shù)據(jù)庫(kù)命令DataAdapter 連接數(shù)據(jù),執(zhí)行數(shù)據(jù)庫(kù)命令,填充DataSetDataSet 數(shù)據(jù)在
6、內(nèi)存中的緩存,數(shù)據(jù)結(jié)構(gòu)DataReader 只讀向前的讀取數(shù)據(jù)庫(kù)7.如何理解委托?答:相當(dāng)于函數(shù)指針,定義了委托就可以在不調(diào)用原方法名稱的情況下調(diào)用那個(gè)方法.委托具有以下特點(diǎn):委托類似于 C+ 函數(shù)指針,但它是類型安全的。委托允許將方法作為參數(shù)進(jìn)行傳遞。委托可用于定義回調(diào)方法。委托可以鏈接在一起;例如,可以對(duì)一個(gè)事件調(diào)用多個(gè)方法。方法不需要與委托簽名精確匹配。有關(guān)更多信息,請(qǐng)參見(jiàn)協(xié)變和逆變。C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作為參數(shù)傳遞,以代替單獨(dú)定義的方法。8.C#中的接口和類有什么異同。 答:異:不能直接實(shí)例化接口。接口不包含方法的實(shí)現(xiàn)。接口、類和結(jié)構(gòu)可從多個(gè)接口繼
7、承。但是C# 只支持單繼承:類只能從一個(gè)基類繼承實(shí)現(xiàn)。類定義可在不同的源文件之間進(jìn)行拆分。同:接口、類和結(jié)構(gòu)可從多個(gè)接口繼承。接口類似于抽象基類:繼承接口的任何非抽象類型都必須實(shí)現(xiàn)接口的所有成員。接口可以包含事件、索引器、方法和屬性。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。9.UDP連接和TCP連接的異同。答:前者只管傳,不管數(shù)據(jù)到不到,無(wú)須建立連接.后者保證傳輸?shù)臄?shù)據(jù)準(zhǔn)確,須要連結(jié).10.ASP.net的身份驗(yàn)證方式有哪些?分別是什么原理?答:Windows 身份驗(yàn)證提供程序:提供有關(guān)如何將 Windows 身份驗(yàn)證與 Microsoft Internet 信息服務(wù) (IIS) 身份驗(yàn)證結(jié)合使用來(lái)確保 AS
8、P.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)證和管理用戶憑據(jù)的方法。Passport 身份驗(yàn)證提供程序:提供有關(guān)由 Microsoft 提供的集中身份驗(yàn)證服務(wù)的信息,該服務(wù)為成員站點(diǎn)提供單一登錄和核心配置11.進(jìn)程和線程分別怎么理解?答:進(jìn)程和線程都是由操作系統(tǒng)所體會(huì)的程序運(yùn)行的基本單元,系統(tǒng)利用該基本單元實(shí)現(xiàn)系統(tǒng)對(duì)應(yīng)用的并發(fā)性。進(jìn)程和線程的區(qū)別在于:
9、簡(jiǎn)而言之,一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程.線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。另外,進(jìn)程在執(zhí)行過(guò)程中擁有獨(dú)立的內(nèi)存單元,而多個(gè)線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。線程在執(zhí)行過(guò)程中與進(jìn)程還是有區(qū)別的。每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。從邏輯角度來(lái)看,多線程的意義在于一個(gè)應(yīng)用程序中,有多個(gè)執(zhí)行部分可以同時(shí)執(zhí)行。但操作系統(tǒng)并沒(méi)有將多個(gè)線程看做多個(gè)獨(dú)立的應(yīng)用,來(lái)實(shí)現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配。這就是進(jìn)程和線程的重要區(qū)別。進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)
10、數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位.線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源.一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程;同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行.12.什么是code-Behind技術(shù)。答:代碼分離,這是個(gè)明智的東西,像ASP這樣混成一堆很不爽.或者可以理解成HTML代碼寫(xiě)在前臺(tái),C#代碼寫(xiě)在后臺(tái).當(dāng)然前臺(tái)也有腳本,類的調(diào)用等,其實(shí)寫(xiě)在一起也是可以的.1
11、3.解釋一下UDDI、WSDL的意義及其作用。答:UDDI:統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議(UDDI, Universal 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)的訪問(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ù)描述;14.什么是SOAP,有哪些應(yīng)用。答:SOAP
12、(Simple Object Access Protocol )簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議是在分散或分布式的環(huán)境中交換信息并執(zhí)行遠(yuǎn)程過(guò)程調(diào)用的協(xié)議,是一個(gè)基于XML的協(xié)議。使用SOAP,不用考慮任何特定的傳輸協(xié)議(最常用的還是HTTP協(xié)議),可以允許任何類型的對(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 消息從
13、A 點(diǎn)傳送到 B 點(diǎn)。為此,它提供了一種基于 XML 且具有以下特性的消息處理框架:1) 可擴(kuò)展,2) 可通過(guò)多種底層網(wǎng)絡(luò)協(xié)議使用,3) 獨(dú)立于編程模型。15.如何理解.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í)
14、行必要的操作來(lái)回收它們占用的內(nèi)存。16.常用的調(diào)用webservice方法有哪些?答:SOAP和WSDL17. 寫(xiě)出一條Sql語(yǔ)句: 取出表A中第31到第40記錄(SQLServer, 以自動(dòng)增長(zhǎng)的ID作為主鍵, 注意:ID可能不是連續(xù)的。)解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)18.列舉ASP.NET 頁(yè)面之間傳
15、遞值的幾種方式。答:1.使用QueryString, 如.?id=1; response.Redirect(). 2.使用Session變量 3.使用Server.Transfer 4.使用Application變量 5.使用Cookie 6. 寫(xiě)出程序的輸出結(jié)果19. 寫(xiě)出程序的輸出結(jié)果class Class1private string str = "Class1.str"private int i = 0;static void StringConvert(string str)str = "string being converted."stat
16、ic 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)
17、;Console.WriteLine(i1);Console.WriteLine(i2);Console.WriteLine(c.i);Console.WriteLine(str);Console.WriteLine(c.str);答案(考查值引用和對(duì)象引用): 10 21 0 str string being converted.20.寫(xiě)出程序的輸出結(jié)果public abstract class Apublic A()Console.WriteLine('A');public virtual void Fun()Console.WriteLine("A.Fun()&
18、quot;);public class B: Apublic B()Console.WriteLine('B');public new void Fun()Console.WriteLine("B.Fun()");public static void Main()A a = new B();a.Fun();答案(考查在繼承類中構(gòu)造函數(shù), 以及new 方法):A B A.Fun()21. 寫(xiě)出程序的輸出結(jié)果:public class Apublic virtual void Fun1(int i)Console.WriteLine(i);public void
19、 Fun2(A a)a.Fun1(1);Fun1(5);public class B : Apublic 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);答案:2 5 1 622. 一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34.求第30位數(shù)是多少,用遞歸算法實(shí)現(xiàn)。(C#語(yǔ)言)答案:public class MainClasspublic static void Main()Console.Writ
20、eLine(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);23. 程序設(shè)計(jì): 貓大叫一聲,所有的老鼠都開(kāi)始逃跑,主人被驚醒。(C#語(yǔ)言)要求: 1.要有聯(lián)動(dòng)性,老鼠和主人的行為是被動(dòng)的。2.考慮可擴(kuò)展性,貓的叫聲可能引起其他聯(lián)動(dòng)效應(yīng)。要點(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)造出
21、Cat、Mouse、Master三個(gè)類,并能使程序運(yùn)行(2分)<2>從Mouse和Master中提取抽象(5分)<3>聯(lián)動(dòng)效應(yīng),只要執(zhí)行Cat.Cryed()就可以使老鼠逃跑,主人驚醒。(3分)答案:public interface Observervoid Response(); /觀察者的響應(yīng),如是老鼠見(jiàn)到貓的反映public interface Subjectvoid AimAt(Observer obs); /針對(duì)哪些觀察者,這里指貓的要撲捉的對(duì)象-老鼠public class Mouse : Observerprivate string name;public
22、 Mouse(string name, Subject subj) = name;subj.AimAt(this);public void Response()Console.WriteLine(name + " attempt to escape!");public class Master : Observerpublic Master(Subject subj)subj.AimAt(this);public void Response()Console.WriteLine("Host waken!");public class C
23、at : Subjectprivate 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 MainClassstatic void Main(string args)Ca
24、t 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 Subjectpublic event SubEventHandler SubEvent;prot
25、ected void FireAway()if (this.SubEvent != null)this.SubEvent();public class Cat : Subjectpublic void Cry()Console.WriteLine("cat cryed.");this.FireAway();public abstract class Observerpublic Observer(Subject sub)sub.SubEvent += new SubEventHandler(Response);public abstract void Response();
26、public class Mouse : Observerprivate string name;public Mouse(string name, Subject sub) : base(sub) = name;public override void Response()Console.WriteLine(name + " attempt to escape!");public class Master : Observerpublic Master(Subject sub) : base(sub)public override void Respon
27、se()Console.WriteLine("host waken");class Class1static 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();24、C#中的委托是什么?事件是不是一種委托?答案:委托是一個(gè)可以對(duì)方法進(jìn)行引用的類。與其他的類不同,
28、委托類具有一個(gè)簽名,并且它只能對(duì)與其簽名匹配的方法進(jìn)行引用。這樣,委托就等效于一個(gè)類型安全函數(shù)指針或一個(gè)回調(diào)。事件是一種委托。25、接口和抽象類有什么區(qū)別?你選擇使用接口和抽象類的依據(jù)是什么?答案:接口是一個(gè)純粹的抽象類,沒(méi)有任何實(shí)際的東西,只是定義了一個(gè)框架,而抽象類里面可以有實(shí)際的一個(gè)方法,并不要求所有的方法都是抽象的??梢詫?shí)現(xiàn)一個(gè)接口中的所有方法,也可以繼承一個(gè)抽象的類,然后覆寫(xiě)其中的方法。接口一般只有方法,而沒(méi)有數(shù)據(jù)成員或?qū)傩?。抽象類有方法,也有?shù)據(jù)成員或?qū)傩?一般情況下,優(yōu)先考慮用接口,只有當(dāng)可能要訪問(wèn)到數(shù)據(jù)成員或?qū)傩詴r(shí),用抽象類。26、談?wù)刦inal, finally, final
29、ize的區(qū)別。答案:final修飾符用于指定類不能擴(kuò)展或者方法或?qū)傩圆荒苤貙?xiě)。它將防止其他類通過(guò)重寫(xiě)重要的函數(shù)來(lái)更改該類的行為。帶有final修飾符的方法可以由派生類中的方法來(lái)隱藏或重載。finally 塊用于清除在 try 塊中分配的任何資源。控制總是傳遞給 finally 塊,與 try 塊的存在方式無(wú)關(guān)。finalize允許 Object 在“垃圾回收”回收 Object 之前嘗試釋放資源并執(zhí)行其他清理操作。27.new有幾種用法答案:第一種:new Class();第二種:覆蓋方法public new XXXX();第三種:new 約束指定泛型類聲明中的任何類型參數(shù)都必須有公共的無(wú)參數(shù)
30、構(gòu)造函數(shù)。28.如何把一個(gè)array復(fù)制到arrayList里答案:foreach( object o in array )arrayList.Add(o);29.概述反射和序列化答案:反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對(duì)象。您可以使用反射動(dòng)態(tài)地創(chuàng)建類型的實(shí)例,將類型綁定到現(xiàn)有對(duì)象,或從現(xiàn)有對(duì)象中獲取類型。然后,可以調(diào)用類型的方法或訪問(wèn)其字段和屬性序列化:序列化是將對(duì)象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^(guò)程。例如,可以序列化一個(gè)對(duì)象,然后使用 HTTP 通過(guò) Internet在客戶端和服務(wù)器之間傳輸該對(duì)象。在另一端,反序列化將從該流重新構(gòu)造對(duì)象。30
31、.用sealed修飾的類有什么特點(diǎn)答案:sealed 修飾符用于防止從所修飾的類派生出其它類。如果一個(gè)密封類被指定為其他類的基類,則會(huì)發(fā)生編譯時(shí)錯(cuò)誤。密封類不能同時(shí)為抽象類。sealed 修飾符主要用于防止非有意的派生,但是它還能促使某些運(yùn)行時(shí)優(yōu)化。具體說(shuō)來(lái),由于密封類永遠(yuǎn)不會(huì)有任何派生類,所以對(duì)密封類的實(shí)例的虛擬函數(shù)成員的調(diào)用可以轉(zhuǎn)換為非虛擬調(diào)用來(lái)處理。31.執(zhí)行下面代碼后:String strTemp ="abcdefg 某某某";Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;Int j = st
32、rTemp.Length;問(wèn):i=(14 ) ;j=(11 )答案:i=(14 ) ;j=(11 ) 中文兩個(gè)字節(jié)32.在c#中using和new這兩個(gè)關(guān)鍵字有什么意義,請(qǐng)寫(xiě)出你所知道的意義?答案:Using 引入一個(gè)名子空間,或在使用了一個(gè)對(duì)像后自動(dòng)調(diào)用其IDespose,New 實(shí)例化一個(gè)對(duì)像,或修飾一個(gè)方法,表此方法完全重寫(xiě)此方法33.在下面的例子里using System;class Apublic A()PrintFields();public virtual void PrintFields()class B:Aint x=1;int y;public B()y=-1;public
33、 override void PrintFields()Console.WriteLine("x=0,y=1",x,y);當(dāng)使用new B()創(chuàng)建B的實(shí)例時(shí),產(chǎn)生什么輸出?答案:X=1,Y=034.下面的例子中using System;class Apublic static int X;static A()X=B.Y+1;class Bpublic static int Y=A.X+1;static B()static void Main()Console.WriteLine("X=0,Y=1",A.X,B.Y);產(chǎn)生的輸出結(jié)果是什么?答案:x=1,y
34、=235.談?wù)勵(lì)惡徒Y(jié)構(gòu)的區(qū)別?答案:最大區(qū)別一個(gè)是引用類型,一個(gè)是值類型默認(rèn)成員訪問(wèn)為public是另外一個(gè)區(qū)別36.一個(gè)長(zhǎng)度為10000的字符串,通過(guò)隨機(jī)從a-z中抽取10000個(gè)字符組成。請(qǐng)用c語(yǔ)言編寫(xiě)主要程序來(lái)實(shí)現(xiàn)。答案:Random r = new Random();StringBuilder sb = new StringBuilder(10000);for (int i = 0; i < 10000; i+)sb.Append(char)(int)'a' + r.Next(0, 26);string str = sb.ToString();37.什么叫做SQL
35、注入,如何防止?請(qǐng)舉例說(shuō)明。答案:SQL注入就是在正常的SQL執(zhí)行語(yǔ)句中惡意插入攻擊者想要運(yùn)行的sql語(yǔ)句。1.最根本的,不使用組合sql的方法,而是通過(guò)使用命令參數(shù)方式來(lái)執(zhí)行命令,比如我們把sql改成這種方式:string strSql = "select * from user where LoginName =LoginName and Pwd =Pwd ",然后通過(guò)sqlcommand來(lái)執(zhí)行它,就可以從根本上解決這個(gè)問(wèn)題。2.控制參數(shù)的長(zhǎng)度。因?yàn)橐脒M(jìn)行sql注入的話,需要一定長(zhǎng)度的字符串才能執(zhí)行,如果我們規(guī)定LoginName 的長(zhǎng)度最長(zhǎng)不超過(guò)8個(gè),一般不會(huì)造成損
36、害,當(dāng)然這個(gè)只是在特殊的情況下才使用,比如有些情況可能不能使用命令參數(shù)方式。38.下面這段代碼輸出什么?為什么?int i=5;int j=5;if(Object.ReferenceEquals(i,j) Console.WriteLine("Equal");else Console.WriteLine("Not Equal");答案:Not Equal,因?yàn)橐玫牡刂凡煌?1. 簡(jiǎn)述 private、 protected、 public、 internal 修飾符的訪問(wèn)權(quán)限。 答 . private : 私有成員, 在類的內(nèi)部才可以訪問(wèn)。 prote
37、cted : 保護(hù)成員,該類內(nèi)部和繼承類中可以訪問(wèn)。 public : 公共成員,完全公開(kāi),沒(méi)有訪問(wèn)限制。 internal: 在同一命名空間內(nèi)可以訪問(wèn)。2 .列舉ASP.NET 頁(yè)面之間傳遞值的幾種方式。 答. 1).使用QueryString, 如.?id=1; response. Redirect(). 2).使用Session變量 3).使用Server.Transfer3. 一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34. 求第30位數(shù)是多少, 用遞歸算法實(shí)現(xiàn)。答:public class MainClass public static void Main() Cons
38、ole.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); 4.C#中的委托是什么?事件是不是一種委托?答 : 委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。委托可以理解為指向一個(gè)函數(shù)的引用。是,是一種特殊的委托5.override與重載的區(qū)別答 : override 與重載的區(qū)別。重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多次重載以
39、適應(yīng)不同的需要override 是進(jìn)行基類中函數(shù)的重寫(xiě)。為了適應(yīng)需要。6.如果在一個(gè)B/S結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進(jìn)行處理?答 : QueryString、FormsAuthentication、 this.Server.Transfer7.請(qǐng)編程遍歷頁(yè)面上所有TextBox控件并給它賦值為string.Empty?答:foreach (Control control in this.Controls)if (control is TextBox)TextBox tb = (TextBox)control ;
40、tb.Text = String.Empty ;8.請(qǐng)編程實(shí)現(xiàn)一個(gè)冒泡排序算法?答:int array = new int * ;int temp = 0 ;for (int i = 0 ; i < array.Length - 1 ; i+)for (int j = i + 1 ; j < array.Length ; j+)if (arrayj < arrayi)temp = arrayi ;arrayi = arrayj ;arrayj = temp ;9.描述一下C#中索引器的實(shí)現(xiàn)過(guò)程,是否只能根據(jù)數(shù)字進(jìn)行索引?答:可以用任意類型。10.求以下表達(dá)式的值,寫(xiě)出您想到的
41、一種或幾種實(shí)現(xiàn)方法: 1-2+3-4+m答:int sum=0;bool flag=true;for(int i=1;i<=m;i+)if(flag)sum+=i;elsesum-=i;flag=!flag;return sum;12.在下面的例子里using System;class Apublic A()PrintFields();public virtual void PrintFields()class B:Aint x=1;int y;public B()y=-1;public override void PrintFields()Console.WriteLine("
42、;x=0,y=1",x,y);當(dāng)使用new B()創(chuàng)建B的實(shí)例時(shí),產(chǎn)生什么輸出?答:X=1,Y=013.什么叫應(yīng)用程序域?答:應(yīng)用程序域可以理解為一種輕量級(jí)進(jìn)程。起到安全的作用。占用資源小。14.CTS、CLS、CLR分別作何解釋?答:CTS:通用語(yǔ)言系統(tǒng)。CLS:通用語(yǔ)言規(guī)范。CLR:公共語(yǔ)言運(yùn)行庫(kù)。15.什么是裝箱和拆箱?答:從值類型接口轉(zhuǎn)換到引用類型裝箱。從引用類型轉(zhuǎn)換到值類型拆箱。16.什么是受管制的代碼?答:unsafe:非托管代碼。不經(jīng)過(guò)CLR運(yùn)行。17.什么是強(qiáng)類型系統(tǒng)?答:RTTI:類型識(shí)別系統(tǒng)。中讀寫(xiě)數(shù)據(jù)庫(kù)需要用到那些類?他們的作用?答:SqlConnection/
43、OleDbConnection:建立數(shù)據(jù)庫(kù)的連接;SqlCommand/OleDbCommand:執(zhí)行數(shù)據(jù)庫(kù)腳本。21.在.net中,配件的意思是?答:程序集。(中間語(yǔ)言,源數(shù)據(jù),資源,裝配清單)22.常用的調(diào)用WebService的方法有哪些?答:1.使用WSDL.exe命令行工具。2.使用VS.NET中的Add Web Reference菜單選項(xiàng) Remoting 的工作原理是什么?答:服務(wù)器端向客戶端發(fā)送一個(gè)進(jìn)程編號(hào),一個(gè)程序域編號(hào),以確定對(duì)象的位置。29.根據(jù)線程安全的相關(guān)知識(shí),分析以下代碼,當(dāng)調(diào)用test方法時(shí)i>10時(shí)是否會(huì)引起死鎖?并簡(jiǎn)要說(shuō)明理由。public void t
44、est(int i) lock(this) if (i>10) i-; test(i); 答:不會(huì)發(fā)生死鎖,(但有一點(diǎn)int是按值傳遞的,所以每次改變的都只是一個(gè)副本,因此不會(huì)出現(xiàn)死鎖。但如果把int換做一個(gè)object,那么死鎖會(huì)發(fā)生)30.簡(jiǎn)要談一下您對(duì)微軟.NET 構(gòu)架下remoting和webservice兩項(xiàng)技術(shù)的理解以及實(shí)際中的應(yīng)用。答:WS主要是可利用HTTP,穿透防火墻。而Remoting可以利用TCP/IP,二進(jìn)制傳送提高效率。remoting是.net 中用來(lái)跨越machine, process, appdomain 進(jìn)行方法調(diào)用的技術(shù),對(duì)于三層結(jié)構(gòu)的程序,就可以使用
45、remoting技術(shù)來(lái)構(gòu)建它是分布應(yīng)用的基礎(chǔ)技術(shù).相當(dāng)于以前的DCOM Web Service是一種構(gòu)建應(yīng)用程序的普通模型,并能在所有支持internet網(wǎng)通訊的操作系統(tǒng)上實(shí)施。Web Service令基于組件的開(kāi)發(fā)和web的結(jié)合達(dá)到最佳,基于組件的對(duì)象模型31.公司要求開(kāi)發(fā)一個(gè)繼承System.Windows.Forms.ListView類的組件,要求達(dá)到以下的特殊功能:點(diǎn)擊ListView各列列頭時(shí),能按照點(diǎn)擊列的每行值進(jìn)行重排視圖中的所有行 (排序的方式如DataGrid相似)。根據(jù)您的知識(shí),請(qǐng)簡(jiǎn)要談一下您的思路答:根據(jù)點(diǎn)擊的列頭,包該列的名稱取出,按照該列名排序后,再綁定到ListVi
46、ew中。32.給定以下XML文件,完成算法流程圖。<FileSystem> < DriverC > <Dir DirName=”MSDOS622”> <File FileName =” C” ></File> </Dir> <File FileName =”MSDOS.SYS” ></File> <File FileName =” IO.SYS” ></File> </DriverC> </FileSystem> 請(qǐng)畫(huà)出遍歷所有文件名(FileName
47、)的流程圖(請(qǐng)使用遞歸算法)。答:圖就不畫(huà)了,直接把程序?qū)懗鰜?lái):Public void DomDepthFirst(XmlNode currentNode)XmlNode node=currentNode.FirstChild;while(node!=null)DomDepthFirst(node);node=node.NextSibling;if(node.Name="File")Console.Write(XmlElement)node).GetAttribute("FileName")+"rn");35.能用foreach遍歷訪
48、問(wèn)的對(duì)象需要實(shí)現(xiàn) _接口或聲明_方法的類型。答:IEnumerable 、 GetEnumerator。36.GC是什么? 為什么要有GC?答:GC是垃圾收集器。程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管理。要請(qǐng)求垃圾收集,可以調(diào)用下面的方法之一: System.gc()Runtime.getRuntime().gc()37.String s = new String("xyz");創(chuàng)建了幾個(gè)String Object?答:兩個(gè)對(duì)象,一個(gè)是“xyz”,一個(gè)是指向“xyz”的引用對(duì)像s。38.abstract class和interface有什么區(qū)別?答:聲明方法的存
49、在而不去實(shí)現(xiàn)它的類被叫做抽像類(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況。不能創(chuàng)建abstract 類的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類型是一個(gè)抽像類,并讓它指向具體子類的一個(gè)實(shí)例。不能有抽像構(gòu)造函數(shù)或抽像靜態(tài)方法。Abstract 類的子類為它們父類中的所有抽像方法提供實(shí)現(xiàn),否則它們也是抽像類為。取而代之,在子類中實(shí)現(xiàn)該方法。知道其行為的其它類可以在類中實(shí)現(xiàn)這些方法。接口(interface)是抽像類的變體。在接口中,所有方法都是抽像的。多繼承性可通過(guò)實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽像的,沒(méi)有一個(gè)有程序體
50、。接口只可以定義static final成員變量。接口的實(shí)現(xiàn)與子類相似,除了該實(shí)現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類的任何對(duì)像上調(diào)用接口的方法。由于有抽像類,它允許使用接口名作為引用變量的類型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來(lái)決定某對(duì)象的類是否實(shí)現(xiàn)了接口。39.啟動(dòng)一個(gè)線程是用run()還是start()?答:?jiǎn)?dòng)一個(gè)線程是調(diào)用start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會(huì)立
51、即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來(lái)停止一個(gè)線程。40.接口是否可繼承接口? 抽像類是否可實(shí)現(xiàn)(implements)接口? 抽像類是否可繼承實(shí)體類(concrete class)?答:造函數(shù)接口可以繼承接口。抽像類可以實(shí)現(xiàn)(implements)接口,抽像類是否可繼承實(shí)體類,但前提是實(shí)體類必須有明確的結(jié)構(gòu)。41.構(gòu)造器Constructor是否可被override?答:構(gòu)造器Constructor不能被繼承,因此不能重寫(xiě)Overriding,但可以被重載Overloading。42.是否可以繼承String類?答:String類是final類故不可以繼承。44.兩個(gè)對(duì)像值相同(x.
52、equals(y) = true),但卻可有不同的hash code,這句話對(duì)不對(duì)?答:不對(duì),有相同的hash code。45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?答:switch(expr1)中,expr1是一個(gè)整型,字符或字符串,因此可以作用在byte和long上,也可以作用在string上。47.當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線程訪問(wèn)。48.abstract的method是否可同時(shí)是static,是否可同時(shí)是nat
53、ive,是否可同時(shí)是synchronized?答:都不能。49.List, Set, Map是否繼承自Collection接口?答:List,Set是Map不是50.Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用=還是equals()? 它們有何區(qū)別?答:Set里的元素是不能重復(fù)的,那么用iterator()方法來(lái)區(qū)分重復(fù)與否。equals()是判讀兩個(gè)Set是否相等。equals()和=方法決定引用值是否指向同一對(duì)像equals()在類中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類型相配的話,返回真值。51.數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength
54、()這個(gè)方法?答:數(shù)組和string都沒(méi)有Length()方法,只有Length屬性。52.sleep() 和 wait() 有什么區(qū)別?答:sleep()方法是將當(dāng)前線程掛起指定的時(shí)間。wait()釋放對(duì)象上的鎖并阻塞當(dāng)前線程,直到它重新獲取該鎖。53.short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?答:short s1 = 1; s1 = s1 + 1;有錯(cuò),s1是short型,s1+1是int型,不能顯式轉(zhuǎn)化為short型??尚薷臑閟1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確
55、。54.談?wù)刦inal, finally, finalize的區(qū)別。答:final修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此 一個(gè)類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們?cè)谑褂弥?不被改變。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為 final的方法也同樣只能使用,不能重載finally再異常處理時(shí)提供 finally 塊來(lái)執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì) 執(zhí)行,然后控制就會(huì)進(jìn)入 finally 塊(如果有的話)。finalize方法名。Java 技術(shù)允許使用 finalize() 方法在垃圾收集器將對(duì)像從內(nèi)存中清除出去之前做必要的清理 工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒(méi)有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在 Object 類中定義的 ,因此所有的類都繼承了它。子類覆蓋 finaliz
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)立項(xiàng)書(shū)怎么寫(xiě)
- 課題結(jié)題申報(bào)書(shū)范文
- 籃球課題申報(bào)書(shū)
- 產(chǎn)權(quán)保護(hù)合同范本
- 法醫(yī)類的課題申報(bào)書(shū)
- 教學(xué)課題項(xiàng)目申報(bào)書(shū)樣板
- 合同范本搜索平臺(tái)
- 五金標(biāo)準(zhǔn)件合同范本
- 德育研究課題申報(bào)書(shū)模板
- 醫(yī)院廚房外包合同范本
- 急性中毒的診斷與治療新進(jìn)展課件
- 薛崗小學(xué)反邪教工作計(jì)劃
- 2022年高級(jí)維修電工(三級(jí))理論考試題庫(kù)(附答案)
- 中醫(yī)基礎(chǔ)理論題庫(kù)及答案 (一)
- HG∕T 3642-2016 水處理劑 丙烯酸-2-甲基-2-丙烯酰胺基丙磺酸類共聚物
- QCT1165-2022汽油乘用車炭罐用空氣濾清器
- DL5714-2014火力發(fā)電廠熱力設(shè)備及管道保溫防腐施工技術(shù)規(guī)范
- 選擇性必修二《Unit 3 Food and Culture》單元課件及小結(jié)
- 2024年湖南省岳陽(yáng)市中考數(shù)學(xué)一模試卷
- 2024年江蘇護(hù)理職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)完美版
- DZ∕T 0080-2010 煤炭地球物理測(cè)井規(guī)范(正式版)
評(píng)論
0/150
提交評(píng)論