1, 請你說說.net中類和結構的區別?
答:結構和類具有大體的語法,但是結構受到的限制比類要多。
結構不能申明有預設的建構函式,為結構的副本是又編譯器建立和銷毀的,所以不需要預設的建構函式和析構函式。
結構是值型別,所以對結構變數所做的改變不會影響其的原值,而類是應用型別,改變其變數的值會改變其原值。
申明結構用struck關鍵字,申明類用class關鍵字,向方法傳遞結構是時是通過值傳遞的,而不是通過引用。
與類不同,結構的例項化可以不使用new關鍵字。類可以實現介面。
2, 死鎖的必要條件?怎麼克服?
答:系統的資源不足,程序的推進的順序不合適,資源分配不當,乙個資源每次只能被乙個程序使用,
乙個資源請求資源時,而此時這個資源已阻塞,對已獲得資源不放,程序獲得資源時,未使用完前,不能強行剝奪。
3, 介面是否可以繼承介面?抽象類是否可以實現介面?抽象類是否可以繼承實體類?
答:介面是可以繼承介面的,抽象類是可以實現介面的,抽象類可以繼承實體類,
但是有個條件,條件是,實體類必須要有明確的建構函式
4, 構造器constructor是否可以被繼承?是否可以被override?
答:constructor不可以被繼承,因此不能被重寫(overriding),但可以被過載(overloading).
5、談談final,finally,finallize的區別?
答:final用於申明屬性,方法和類,表示屬性不可變,方法不可以被覆蓋,類不可以被繼承。
finally是異常處理語句結構中,表示總是執行的部分。
finallize表示是object類乙個方法,在垃圾**機制中執行的時候會被呼叫被**物件的方法。
6、new有種用法?
答:有3種,第一種是,例項化如:new class()
第二種是,public new 隱藏基類的方法
第三種是,在泛型類申明中的任何型別引數都必須有公共的無參建構函式。
7、const和readonly?
答:const用來申明程式設計時申明常量,readonly用來申明執行時常量
8、udp和tcp連線有和異同?
答:tcp是傳輸控制協議,提供的是面向連線的,是可靠的,位元組流服務,
當使用者和伺服器彼此進行資料互動的時候,必須在他們資料互動前要 進行tcp連線之後才能傳輸資料。
tcp提供超時重撥,檢驗資料功能。
udp是使用者資料報協議,是乙個簡單的面向資料報的傳輸協議,是不可靠的連線。
9、public,internal,private,protected,protected internal各個訪問修飾符的區別?
public:任何地方都可以呼叫。
internal:同一應用程式集內均可呼叫(vs.net的乙個工程中)
protected:只能在類以及它的子類中呼叫。 private:只能在類成員呼叫。
protected internal:只能被同一應用程式集內類和它的子類呼叫。
10、out 和 ref的區別與相同點?
out 和 ref都指示編譯器傳遞引數位址,在行為上是相同的;
他們的使用機制稍有不同,ref要求引數在使用之前要顯式初始化,out要在方法內部初始化;
out 和 ref不可以過載,就是不能定義method(ref int a)和method(out int a)這樣的過載,從編譯角度看,二者的實質是相同的,只是使用時有區別;
11、介面和類有什麼異同?
不同點:
1)、介面不能直接例項化。
2)、介面只包含方法或屬性的宣告,不包含方法的實現。
3)、介面可以多繼承,類只能單繼承。
4)、類有分部類的概念,定義可在不同的原始檔之間進行拆分,而介面沒有。(這個地方確實不對,介面也可以分部,謝謝@xclin163的指正)
5)、表達的含義不同,介面主要定義一種規範,統一呼叫方法,也就是規範類,約束類,類是方法功能的實現和集合
相同點:
1)、介面、類和結構都可以從多個介面繼承。
2)、介面類似於抽象基類:繼承介面的任何非抽象型別都必須實現介面的所有成員。
3)、介面和類都可以包含事件、索引器、方法和屬性。
12、抽象類和介面有什麼區別?
1)、繼承:介面支援多繼承;抽象類不能實現多繼承。
2)、表達的概念:介面用於規範,更強調契約,抽象類用於共性,強調父子。抽象類是一類事物的高度聚合,那麼對於繼承抽象類的子類來說,對於抽象類來說,屬於"is a"的關係;而介面是定義行為規範,強調「can do」的關係,因此對於實現介面的子類來說,相對於介面來說,是"行為需要按照介面來完成"。
3)、方法實現:對抽象類中的方法,即可以給出實現部分,也可以不給出;而介面的方法(抽象規則)都不能給出實現部分,介面中方法不能加修飾符。
4)、子類重寫:繼承類對於兩者所涉及方法的實現是不同的。繼承類對於抽象類所定義的抽象方法,可以不用重寫,也就是說,可以延用抽象類的方法;而對於介面類所定義的方法或者屬性來說,在繼承類中必須重寫,給出相應的方法和屬性實現。
5)、新增方法的影響:在抽象類中,新增乙個方法的話,繼承類中可以不用作任何處理;而對於介面來說,則需要修改繼承類,提供新定義的方法。
6)、介面可以作用於值型別(列舉可以實現介面)和引用型別;抽象類只能作用於引用型別。
7)、介面不能包含欄位和已實現的方法,介面只包含方法、屬性、索引器、事件的簽名;抽象類可以定義字段、屬性、包含有實現的方法。
13、過載與覆蓋的區別?
過載:當類包含兩個名稱相同但簽名不同(方法名相同,引數列表不相同)的方法時發生方法過載。用方法過載來提供在語義上完成相同而功能不同的方法。
覆寫:在類的繼承中使用,通過覆寫子類方法可以改變父類虛方法的實現。
主要區別:
1)、方法的覆蓋是子類和父類之間的關係,是垂直關係;方法的過載是同乙個類中方法之間的關係,是水平關係。
2)、覆蓋只能由乙個方法,或只能由一對方法產生關係;方法的過載是多個方法之間的關係。
3)、覆蓋要求引數列表相同;過載要求引數列表不同。
4)、覆蓋關係中,呼叫那個方法體,是根據物件的型別來決定;過載關係,是根據呼叫時的實參表與形參表來選擇方法體的。
大資料面試題 四 YARN面試題
無意中發現了乙個巨牛的人工智慧教程,忍不住分享一下給大家。教程不僅是零基礎,通俗易懂,而且非常風趣幽默,像看 一樣!覺得太牛了,所以分享給大家。點這裡可以跳轉到教程。大資料面試寶典目錄,簡述hadoop1 與hadoop2 的架構異同 加入了yarn 解決了資源排程的問題。加入了對zookeeper...
php面試題四
php面試題二 8.談談事務處理 答案是 事物只是一組sql語句,通常因為它們是彼此相互依賴的。所有要在全有或者 全無的模式下執行,只有當所有的語句都執行成功了,乙個事物才算成功了,任何乙個語句中的失敗應該都會導致系統 回滾 到它先前的狀態,以避免資料連線 崩潰問題。9.apache mysql p...
演算法面試題四
螺旋佇列問題2 如矩陣 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 找出規律,並列印乙個nxn的矩陣,規律就是從首座標開始順時針依次增大。如下,用到了演算法面試題三裡面的函式 如下 include include...