當前位置:學識都>好好學習>考研>

廣州某公司軟體工程師面試題目

學識都 人氣:3.22W

1.抽象類和介面有什麼異同?10分

廣州某公司軟體工程師面試題目

答:介面用於規範,抽象類用於共性。介面中只能宣告方法,屬性,事件,索引器。而抽象類中可以有方法的實現,也可以定義非靜態的類變數。抽象類是類,所以只能被單繼承,但是介面卻可以一次實現多個。抽象類可以提供某些方法的部分實現,介面不可以.抽象類的例項是它的子類給出的。介面的例項是實現介面的類給出的。再抽象類中加入一個方法,那麼它的子類就同時有了這個方法。而在介面中加入新的方法,那麼實現它的`類就要重新編寫(這就是為什麼說介面是一個類的規範了)。介面成員被定義為公共的,但抽象類的成員也可以是私有的、受保護的、內部的或受保護的內部成員(其中受保護的內部成員只能在應用程式的程式碼或派生類中訪問)。此外介面不能包含欄位、建構函式、解構函式、靜態成員或常量。

2.結構和類有什麼異同?10 分

答:類是引用型別,可以繼承類、介面和被繼承,有預設的建構函式,有解構函式,可以使用abstract和sealed,有protected修飾符,必須使用new初始化。

結構是值型別,只能繼承介面,不能被繼承,沒有預設的建構函式,可以建立,沒有解構函式,不可以用abstract和sealed,沒有protected修飾符,可以不用new初始化。

如何選擇使用結構還是類:

a) 堆疊的空間有限,對於大量的邏輯的物件,建立類要比建立結構好一些

b) 結構表示如點、矩形和顏色這樣的輕量物件,例如,如果宣告一個含有 1000 個點物件的陣列,則將為引用每個物件分配附加的記憶體。在此情況下,結構的成本較低。

c) 在表現抽象和多級別的物件層次時,類是最好的選擇

d) 大多數情況下該型別只是一些資料時,結構是最佳的選擇

3.有根粗細不一的繩子有A,B兩端,從A端燒到B端的時間是一個小時,從B端燒到A端也是一個小時 .但從中間燒到A端或是B端不是半個小時.

給你兩跟繩子和一個打火機 怎麼樣得到45分鐘?15分

答:兩根繩子同時點,只不過,一根兩頭一起點,一根只點一個頭,當兩頭點的燒玩時,花掉30分鐘,再把另一根繩子的另一頭也點燃,這樣它燒玩花掉的時間就是15分鐘,兩個時間加起來就是45分鐘。

4.有一個數據庫中的兩個表(具體的記不太清楚)

1).再建兩個表 10分

2).通過建的兩個表查詢 10分

3).兩表查詢 10分

4).兩表複雜查詢 15分