<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      之乎者也,阿彌陀佛

      軟件設(shè)計的原則就是,化繁為簡,化難為易,把人的思維集中在簡單的領(lǐng)域,然后通過有序的組合實現(xiàn)復(fù)雜的邏輯。

        博客園  :: 首頁  :: 新隨筆  :: 聯(lián)系 :: 訂閱 訂閱  :: 管理

      聲明:本文某些內(nèi)容摘自互聯(lián)網(wǎng),僅作學(xué)習(xí)之用!若無意侵犯你的權(quán)利,本人將在24小時內(nèi)刪除!
      1.類的三大特性:封裝、繼承、多態(tài)。

      2.類和結(jié)構(gòu)的區(qū)別:
      a)     一個是值類型(結(jié)構(gòu)),一個是引用類型(類),結(jié)構(gòu)struct在傳遞的時候如果沒有指定ref,則傳遞的是內(nèi)存中的一分副本,而class則是傳遞對他的引用。
      b)    類在堆中,結(jié)構(gòu)在棧中,類傳遞的是類在堆中的地址,而結(jié)構(gòu)是在棧中另復(fù)制了一個傳遞,你改變傳遞過來的結(jié)構(gòu)不會影響原結(jié)構(gòu)。而類是引用,共用一塊內(nèi)存,會改變堆中類的內(nèi)容。
      c)    對于結(jié)構(gòu),不像類那樣存在繼承。一個結(jié)構(gòu)不能從另一個結(jié)構(gòu)或類繼承,而且不能作為一個類的基。但是,結(jié)構(gòu)從基類 Object 繼承。 

      3.new關(guān)鍵字的作用:

      a)     作為運算符用來創(chuàng)建一個對象和調(diào)用構(gòu)造函數(shù)。
      b)     作為修飾符。
      c)      用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。

      new作為修飾符的作用,在用作修飾符時,new關(guān)鍵字可以在派生類中隱藏基類的方法,也就說在使用派生類的方法是調(diào)用的方法是New關(guān)鍵字新定義出來的方法,而不是基類的方法。在不使用New關(guān)鍵字來隱藏基類方法也是可以的,編譯器會出現(xiàn)一個警告,提示如果有意去隱藏基類的方法,請使用New關(guān)鍵字修飾。

      4.override和overload區(qū)別:

      Item Override重寫(覆蓋) Overload重載
      位置 存在于繼承關(guān)系的類中 存在于同一類中
      方法名 相同 相同
      參數(shù)列表 相同 必須不同
      返回值 相同 可以不


       






      5.值類型和引用類型的區(qū)別:
      聲明一個值類型變量,編譯器會在棧上分配一個空間,這個空間對應(yīng)著該值類型變量,空間里存儲的就是該變量的值。引用類型的實例分配在堆上,新建一個引用類型實例,得到的變量值對應(yīng)的是該實例的內(nèi)存分配地址。值類型的值是存放在堆棧中的,改變其值,不改變變量原有的值,而引用類型的值是存放在棧中的,其引用的地址是存放在堆棧中的,改變其值也就改變了變量原有的值。值類型不允許包含null值,然而可空類型可以將null賦值給值類型l。

      Item 值類型 引用類型
      內(nèi)存分配地點 分配在棧中 分配在堆中
      效率 效率高,不需要地址轉(zhuǎn)換 效率低,需要進(jìn)行地址轉(zhuǎn)換
      內(nèi)存回收 使用完后,立即回收 使用完后,不是立即回收,等待GC回收
      賦值操作 進(jìn)行復(fù)制,創(chuàng)建一個同值新對象 只是對原有對象的引用
      函數(shù)參數(shù)與返回值 是對象的復(fù)制 是原有對象的引用,并不產(chǎn)生新的對象
      類型擴(kuò)展 不易擴(kuò)展 容易擴(kuò)展,方便與類型擴(kuò)展









      6.死鎖的必要條件?如何避免?
      1) 互斥條件:一個資源每次只能被一個進(jìn)程使用。
      2) 請求與保持條件:一個進(jìn)程因請求資源而阻塞時,對已獲得的資源保持不放。
      3) 不剝奪條件:進(jìn)程已獲得的資源,在末使用完之前,不能強行剝奪。
      4) 循環(huán)等待條件:若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。
      這四個條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會發(fā)生死鎖。
      死鎖排除的方法:
      1)、撤消陷于死鎖的全部進(jìn)程;
      2)、逐個撤消陷于死鎖的進(jìn)程,直到死鎖不存在;
      3)、從陷于死鎖的進(jìn)程中逐個強迫放棄所占用的資源,直至死鎖消失。
      4)、從另外一些進(jìn)程那里強行剝奪足夠數(shù)量的資源分配給死鎖進(jìn)程,以解除死鎖狀態(tài)

      7.base、this關(guān)鍵字的含義?
      1)base 關(guān)鍵字用于從派生類中訪問基類的成員: 
      調(diào)用基類上已被其他方法重寫的方法。 
      指定創(chuàng)建派生類實例時應(yīng)調(diào)用的基類構(gòu)造函數(shù)。 
      基類訪問只能在構(gòu)造函數(shù)、實例方法或?qū)嵗龑傩栽L問器中進(jìn)行。
      2)this 關(guān)鍵字引用類的當(dāng)前實例。 new class()
      以下是 this 的常用用途:
      限定被相似的名稱隱藏的成員  public new
      將對象作為參數(shù)傳遞到其他方法 
      聲明索引器。

      8.抽象類和接口的異同?
      1)抽象類:抽象類是特殊的類,只是不能被實例化;除此以外,具有類的其他特性;重要的是抽象類可以包括抽象方法,這是普通類所不能的。抽象方法只能聲明于抽象類中,且不包含任何實現(xiàn),派生類必須覆蓋它們。另外,抽象類可以派生自一個抽象類,可以覆蓋基類的抽象方法也可以不覆蓋,如果不覆蓋,則其派生類必須覆蓋它們。
      2)接口是引用類型的,和抽象類的相似之處有三點:
             a、不能實例化;
             b、包含未實現(xiàn)的方法聲明;
             c、派生類必須實現(xiàn)未實現(xiàn)的方法,抽象類是抽象方法,接口則是所有成員(不僅是方法包括其他成員);
             d、接口除了可以包含方法之外,還可以包含屬性、索引器、事件,而且這些成員都被定義為公有的。除此之外,不能包含任何其他的成員,例如:常量、域、構(gòu)造函數(shù)、析構(gòu)函數(shù)、靜態(tài)成員。一個類可以直接繼承多個接口,但只能直接繼承一個類(包括抽象類)。
      3)區(qū)別:
           a、抽象類更多的是定義在一系列緊密相關(guān)的類間,而接口大多數(shù)是關(guān)系疏松但都實現(xiàn)某一功能的類中;
           b、一個類一次可以實現(xiàn)若干個接口,但是只能擴(kuò)展一個父類;
           c、接口可以用于支持回調(diào),而繼承并不具備這個特點;
           d、抽象類不能被密封;
           e、抽象類實現(xiàn)的具體方法默認(rèn)為虛的,但實現(xiàn)接口的類中的接口方法卻默認(rèn)為非虛的,當(dāng)然您也可以聲明為虛的。
           f、抽象類實現(xiàn)了oop中的一個原則,把可變的與不可變的分離。抽象類和接口就是定義為不可變的,而把可變的座位子類去實現(xiàn);
           g、好的接口定義應(yīng)該是具有專一功能性的,而不是多功能的,否則造成接口污染。如果一個類只是實現(xiàn)了這個接口的中一個功能,而不得不去實現(xiàn)接口中的其他方法,就叫接口污染;
           h、盡量避免使用繼承來實現(xiàn)組建功能,而是使用黑箱復(fù)用,即對象組合。因為繼承的層次增多,造成最直接的后果就是當(dāng)你調(diào)用這個類群中某一類,就必須把他們?nèi)考虞d到棧中!后果可想而知.(結(jié)合堆棧原理理解)。同時,有心的朋友可以留意到微軟在構(gòu)建一個類時,很多時候用到了對象組合的方法。比如asp.net中,Page類,有Server Request等屬性,但其實他們都是某個類的對象。使用Page類的這個對象來調(diào)用另外的類的方法和屬性,這個是非常基本的一個設(shè)計原則。   
           i、如果抽象類實現(xiàn)接口,則可以把接口中方法映射到抽象類中作為抽象方法而不必實現(xiàn),而在抽象類的子類中實現(xiàn)接口中方法。

      9.靜態(tài)成員和非靜態(tài)成員:
           1)類的成員要么是靜態(tài)的,要么是動態(tài)的,如果將類的某個成員聲明為static,則該成員是靜態(tài)成員;
           2)類的靜態(tài)成員是屬于類所有,不必產(chǎn)生類的實例就可以訪問它,就是只用類名就可以訪問;
           3)靜態(tài)成員為類的所有實例所共享,無論這個類創(chuàng)建了多少個實例,一個靜態(tài)成員在內(nèi)存中只占有一塊區(qū)域;
           4)類的非靜態(tài)成員屬于類的實例所有,每創(chuàng)建一個類的實例,都在內(nèi)存中為非靜態(tài)成員開辟了一塊區(qū)域;
           5)靜態(tài)方法只能訪問類例的靜態(tài)字段,而非靜態(tài)方法可以訪問類例的所有字段;

      10.靜態(tài)類:

      它們僅包含靜態(tài)成員。
      它們不能被實例化。
      它們是密封的。
      它們不能包含實例構(gòu)造函數(shù)(C# 編程指南)。
      因此創(chuàng)建靜態(tài)類與創(chuàng)建僅包含靜態(tài)成員和私有構(gòu)造函數(shù)的類大致一樣。私有構(gòu)造函數(shù)阻止類被實例化。
      使用靜態(tài)類的優(yōu)點在于,編譯器能夠執(zhí)行檢查以確保不致偶然地添加實例成員。編譯器將保證不會創(chuàng)建此類的實利。
      靜態(tài)類是密封的,因此不可被繼承。靜態(tài)類不能包含構(gòu)造函數(shù),但仍可聲明靜態(tài)構(gòu)造函數(shù)以分配初始值或設(shè)置某個靜態(tài)狀態(tài)。

      11.collection和collections的區(qū)別:
      Collection是集合類的上級接口,Collections是針對集合類的一個幫助類,它提供一系列靜態(tài)方法來實現(xiàn)對各種集合的搜索,排序,線程安全化操作。

      12.堆和棧的區(qū)別:
      Heap是堆,空間是由手動操作分配和釋放的,它的存儲區(qū)很大的自由存儲區(qū)。
      Stack是棧,是由是操作系統(tǒng)自動分配和釋放的,棧上的空間是有限的。程序在編譯期間變量和函數(shù)分配內(nèi)存都是在棧上進(jìn)行的,且在運行時函數(shù)調(diào)用時的參數(shù)的傳遞也是在棧上進(jìn)行的。

      13.readonly 關(guān)鍵字與 const 關(guān)鍵字:
      const 字段只能在該字段的聲明中初始化。
      readonly 字段可以在聲明或構(gòu)造函數(shù)中初始化。因此,根據(jù)所使用的構(gòu)造函數(shù),readonly 字段可能具有不同的值。
      const 字段是編譯時常數(shù),而 readonly 字段可用于運行時常數(shù)。
      const 默認(rèn)就是靜態(tài)的,而 readonly 如果設(shè)置成靜態(tài)的就必須顯示聲明。
      const 對于引用類型的常數(shù),可能的值只能是 string 和 null。readonly可以是任何類型

      14.進(jìn)程和線程:
      進(jìn)程是比線程大的程序運行單元,都是由操作系統(tǒng)所體會的系統(tǒng)運行單元,一個程序中至少要有一個進(jìn)程,有一個進(jìn)程中,至少要有一個線程,線程的劃分尺度要比進(jìn)程要小,進(jìn)程擁有獨立的內(nèi)存單元,線程是共享內(nèi)存,從而極大的提高了程序的運行效率同一個進(jìn)程中的多個線程可以并發(fā)執(zhí)行。

      15.什么叫應(yīng)用程序域?什么是托管代碼?什么是強類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別作何解釋?
           應(yīng)用程序域:就是為安全性,可靠性,隔離性,和版本控制,及卸載程序提供的隔離邊界。它通常由運行庫宿主創(chuàng)建,應(yīng)用程序域提供了一個更安全,用途更廣的處理單元。

        托管代碼:使用CLR編譯語言編輯器開發(fā)編寫的代碼就叫托管代碼。

        裝箱和拆箱:是把值類型轉(zhuǎn)換為引用類型的過程,是隱式的,相反的過程就是拆箱,是顯式的。

        CTS是公共類型系統(tǒng),CLS是公共語言規(guī)范,CLR公共語言運行庫。

        強類型系統(tǒng):每個變量和對象都必須具有申明類型。

      16.c#中類的默認(rèn)訪問修飾符,是private還是internal?

       默認(rèn)是internal :
        C#用多種修飾符來表達(dá)類的不同性質(zhì)。根據(jù)其保護(hù)級C#的類有五種不同的限制修飾符:
      public可以被任意存取;
      protected只可以被本類和其繼承子類存??;
      internal只可以被本組合體(Assembly)內(nèi)所有的類存取,組合體是C#語言中類被組合后的邏輯單位和物理單位,其編譯后的文件擴(kuò)展名往往是“.DLL”或“.EXE”。
      protected internal唯一的一種組合限制修飾符,它只可以被本組合體內(nèi)所有的類和這些類的繼承子類所存取。
      private只可以被本類所存取。
      如果不是嵌套的類,命名空間或編譯單元內(nèi)的類只有public和internal兩種修飾。

      new修飾符只能用于嵌套的類,表示對繼承父類同名類型的隱藏。

      abstract用來修飾抽象類,表示該類只能作為父類被用于繼承,而不能進(jìn)行對象實例化。抽象類可以包含抽象的成員,但這并非必須。abstract不能和new同時用。下面是抽象類用法的偽碼:

      abstract class A
      {
      public abstract void F();
      }
      abstract class B: A
      {
      public void G() {}
      }
      class C: B
      {
      public override void F()
      {
      //方法F的實現(xiàn)
      }
      }

      抽象類A內(nèi)含一個抽象方法F(),它不能被實例化。類B繼承自類A,其內(nèi)包含了一個實例方法G(),但并沒有實現(xiàn)抽象方法F(),所以仍然必須聲明為抽象類。類C繼承自類B,實現(xiàn)類抽象方法F(),于是可以進(jìn)行對象實例化。

      sealed用來修飾類為密封類,阻止該類被繼承。同時對一個類作abstract和sealed的修飾是沒有意義的,也是被禁止的。 

      17.c# 類的public private internal protected的區(qū)別:
      public 修飾的類,可以在整個系統(tǒng)的任意地方調(diào)用,是完全公開的;
      private 相反的,只能在類內(nèi)部調(diào)用.任何實例,無法調(diào)用private調(diào)用;
      internal 僅為同項目(這里的項目是只單獨的項目,而不是整個解決方案)調(diào)用,或者說同一命名空間內(nèi)調(diào)用;
      protected   自己及自己的子類可以調(diào)用

      18.error和exception
      Error和Exception都繼承自Throwable,他們下列不同處:
      Exceptions
      1.可以是 可被控制(checked) 或 不可控制的(unchecked)
      2.表示一個由程序員導(dǎo)致的錯誤
      3.應(yīng)該在應(yīng)用程序級被處理
      Errors
      1.總是 不可控制的(unchecked)
      2.經(jīng)常用來用于表示系統(tǒng)錯誤或低層資源的錯誤
      3.如何可能的話,應(yīng)該在系統(tǒng)級被捕捉 

      posted on 2009-03-11 22:18  搏擊的小船  閱讀(471)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产午夜福利精品视频| 伊人久在线观看视频| 不卡无码人妻一区三区音频| 福利视频在线一区二区| 国产精品无码专区| 亚洲精品乱码久久久久久中文字幕| 欧美日本国产va高清cabal| 国产人妻高清国产拍精品| 亚洲AV网一区二区三区| 日韩熟妇| 亚洲久悠悠色悠在线播放| 日韩在线一区二区每天更新| 久久精品无码专区免费东京热| 国产午夜精品久久一二区| 国产成人精品无码播放| 免费无码成人AV片在线| 人妻精品久久无码区| 18禁国产一区二区三区| 中文字幕无码专区一VA亚洲V专| 亚洲日韩精品一区二区三区| 日本熟妇人妻一区二区三区| 国产伦码精品一区二区| 亚洲中文字幕日产无码成人片| 激情综合网激情五月伊人| 国产一码二码三码区别| 成年无码av片在线蜜芽| 日本黄页网站免费大全| 亚洲国产大片永久免费看| 丁香五月婷激情综合第九色| 国产肉丝袜在线观看| 国产涩涩视频在线观看| 國產尤物AV尤物在線觀看| 潮喷无码正在播放| 国产精品综合色区av| 国产精品日日摸夜夜添夜夜添2021 | 国产成人精品视频不卡| 亚洲天天堂天堂激情性色| 狠狠躁夜夜躁人人爽天天bl| 欧美亚洲另类自拍偷在线拍| 亚洲精品日本一区二区| 亚洲成a人片在线观看中|