2015-01-16 .Net 中級軟件工程師 筆試題

一 C#方面web

1.請簡述多線程須要考慮的主要因素ajax

  答:1.線程管理sql

      同一核上的兩個線程不會以兩倍的時長完成,可能須要用兩倍再加10 %左右的時間來完成。與一個線程相比較的話,三個線程在同一核上想佔用100 %的CPU使用率可能會須要3.25——3.5倍的時長來完成。因此,要怎樣分配正在運行的線程數量呢?有一個辦法是在線程之間創建一個共享的旗語對象。在線程開始運行前,它會嘗試調用旗語的WaitOne模式,並在完成後釋放旗語。對CPU的核數量設置旗語限制,(使用EnvironmentProcessorCount功能限定);這將防止您的系統在同一時間運行的線程數多於核數量。與此同時,從線程池中拉出線程將確保您不會在同一時間建立過多線程。若是一次建立線程過多,即便他們並沒運行,那也是浪費系統資源。數據庫

 

    2.數據完整性瀏覽器

      要擔憂的問題是競爭條件和死鎖。多個線程試圖在同一時間更新相同的對象就會形成競爭條件,這將招致麻煩。在.NET架構中,最簡單也最多見的解決競爭條件的方法是使用「臨界區」。多線程

      死鎖的話,對編寫的代碼加以認真檢查架構

2.抽象類和接口的區別數據庫設計

  答:聲明方法的存在而不去實現他的類就叫作抽象類,用於建立一下體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的狀況。不能建立abstract類的實例,然而能夠建立一個變量,類型是抽象類,並讓它指向具體子類的實例。不能有抽象構造函數,和抽象靜態方法。abstract子類爲它們父類全部的抽象方法提供實現,不然它們也是抽象類。接口是抽象類的變體,在接口中,全部的方法都是抽象的。多繼承性可經過這樣的接口得到。接口沒有程序體,只能夠定義static final成員變量。接口的實現於子類類似,除了該實現類不能從接口定義中繼承行爲。ide

3.爲何不提倡Cath()?必需要用的時候如何使用爲好?函數

  答:只捕捉特定環境,特定條件下的異常,並進行處理。不能捕捉全部異常,由於有些異常是咱們所沒法預料到的,好比,內存溢出或其餘錯誤,這種狀況下,不該該讓系統以一種未知狀態繼續運行。不要使用try...catch進行流程處理。若是可能的話,儘可能要把循環寫在try...catch內部,而不要把try...catch放到循環內部。

若是是try...catch中套着try...catch,異常處理機制是從內部的try...catch...往外部拋的,最早是在內部進行捕獲、處理。

 

4.說明string str=null與string str=""在內存分配上的去吧

  答:string str=null不分配內存,string str=""分配字符串爲空的內存

5.類(class)與結構(struct)的異同·

  答:類是引用類型,能夠繼承類、接口和被繼承,有默認的構造函數,有析構函數,可使用abstract和sealed,有protected修飾符,必須使用new初始化。

  結構是值類型,只能繼承接口,不能被繼承,沒有默認的構造函數,能夠建立,沒有析構函數,不能夠用abstract和sealed,沒有protected修飾符,能夠不用new初始化。

6.簡述對emoting和webservice兩項技術的理解以及實際中的應用

  答:WS主要是可利用HTTP,穿透防火牆。而Remoting能夠利用TCP/IP,二進制傳送提升效率。

 

7.簡述private,protected,public,internal修飾符的訪問權限

答 . private : 私有成員, 在類的內部才能夠訪問。
protected : 保護成員,該類內部和繼承類中能夠訪問。
public : 公共成員,徹底公開,沒有訪問限制。
internal: 在同一命名空間內能夠訪問。

8.C#中的委託是什麼?事件是否是一種委託?

答:委託能夠把一個方法做爲參數代入另外一個方法。

委託能夠理解爲指向一個函數的指針。

事件是一種特殊的委託

9.override與重載的區別

答:覆寫(Override)的兩個函數的函數特徵相同
重載(Overload)的兩個函數的函數名雖然相同,但函數特徵不一樣。

10.用.net的b/s結構的系統,您是用幾層開發,每一層之間的關係以及爲何要這樣分層?

答:從下至上分別爲:數據訪問層、業務邏輯層(又或成爲領域層)、表示層 
數據訪問層:有時候也稱爲是持久層,其功能主要是負責數據庫的訪問 
業務邏輯層:是整個系統的核心,它與這個系統的業務(領域)有關 
表示層:是系統的UI部分,負責使用者與整個系統的交互。  
優勢:  分工明確,條理清晰,易於調試,並且具備可擴展性。 
缺點:  增長成本。 

分層式結構究竟其優點何在? 
一、開發人員能夠只關注整個結構中的其中某一層; 
二、能夠很容易的用新的實現來替換原有層次的實現; 
三、能夠下降層與層之間的依賴; 
四、有利於標準化; 
五、利於各層邏輯的複用。 

11..net中讀寫數據庫須要用到的那些類?它們的做用?

答:DataSet數據存儲器。

DataCommand執行語句命令。

DataAdapter數據的集合,用語填充。

12.簡單用代碼舉例說明什麼叫多態。

Class Person{
    
  Public void Eat()
   {
         Console.WriteLine("Person Eat Foot");
   }        
}

Class Teacher
{
  Public void Eat(
  {
        Console.WriteLine("Teacher Eat Mantou");
  }
}

Public Class Test{
    Public static void Main(string args[]){
Person a=new Teacher():
a.eat();
   
}

}
        

 

13.簡單用代碼舉例說明什麼叫繼承。

Class Person{
    
 Public string Name;
 Public int      Age;
 
 Public Person(string Name,int Age)
 {
     this.Name=Name;
     this.Age=Age;
     Console.WriteLine(Name);
     Console.WriteLine(Age);

 }    
}

Class Teacher:Person
{
  private int _id;
  Public Teacher(string Name,int Age,int _id)
        :base(Name,Age)
  {
       this._id=_id;
       Console.WriteLine(_id):
  }
}

Public Class Test{
    Public static void Main(string args[]){
        Teacher Tom=new Teacher("Tom",22,01)
   
}

}

  

 

 

 

二 SQLSERVER方面

1.內容重複性高的字段上創建索引,查詢效率會降低仍是提升?爲何?

答:降低,索引就是爲了從大量數據中提取須要的少許數據,推斷到極端條件下,假設字段值都是同樣的,索引是沒有意義的

2.自定義函數和存儲過程的區別是什麼,什麼狀況下只能用自定義函數,什麼狀況下只能用存儲過程?

答:自定義函數:1. 能夠返回表變量2. 限制頗多,包括不能使用output參數;不能用臨時表;函數內部的操做不能影響到外部環境;不能經過select返回結果集;不能update,delete,數據庫表;3. 必須return 一個標量值或表變量,自定義函數通常用在複用度高,功能簡單單一,爭對性強的地方。

存儲過程:1. 不能返回表變量2. 限制少,能夠執行對數據庫表的操做,能夠返回數據集3. 能夠return一個標量值,也能夠省略return,存儲過程通常用在實現複雜的功能,數據操縱方面。

3.簡述分區表

答:將大表的數據分紅稱爲分區的許多小的子集。分區表在邏輯上是一個表,而物理上是多個表

4.分別說明什麼應用環境下如何使用遊標,事務,鎖,索引,以及聚簇索引和非聚簇索引的區別

答: 

 

5.舉例說明左鏈接和內鏈接的區別

答:區別在於左鏈接比內鏈接多出左表不符合條件的數據

 

6.比較說明數據庫設計的第一範式,第二範式,第三範式的優缺點

答:

  • 第一範式:1NF是對屬性的原子性約束,要求屬性具備原子性,不可再分解; 通俗的理解是字段還能夠再分嗎?如過不能,則是符合1NF的設計。
  • 第二範式:2NF是對記錄的唯一性約束,要求記錄有唯一標識,即實體的唯一性; 簡單的解釋,好比你和一個女生約會創建一張表,不用每條約會記錄都記錄她的身高、體重,將身高體重單獨的存在一張表中供查詢便可。
  • 第三範式:3NF是對字段冗餘性的約束,即任何字段不能由其餘字段派生出來

 

7.寫出一條sql語句:取出A表中的第x到第xx記錄(sqlserver以自動增加的id做爲主鍵,注意,id可能爲不連續的)

 

三 WEB方面

1.簡述HttpModule和HttpHandler?

 

2.請描述一下ASP.NET頁面生命週期?

 

 

3.簡述列舉你知道的Web優化措施?

4.簡述Http請求的過程(從用戶在瀏覽器輸入網址到看到最終頁面所經歷的的過程,描述中必須包含IIS及ASP.NET引擎部分)

5.Javascipt中拼接大量字符串,考慮一個高效的辦法

6.AJAX問題

1)爲何使用以下三種方式建立對象?並簡述對XMLHttpRequest的理解

var Ajax=function(){
return Try.these{
    funtion(){return  new XMLHttpRequest()};
    funtion(){return  new ActiveObject('Msxml2.XMLHTTP')};
    funtion(){return  new XMLHttpRequest('Microsoft.XMLHTTP')};
}||false;
};

2)補充以下代碼

ajax=new Ajax;

     var url="/MoreCondition.aspx?category="+type+"";

  ajax.onreadystatechange=(______________);

  ajax.open(___________________);

  _________________________;

 

3)做爲Ajax的回調函數,以下函數有什麼問題?

  funtion callback()

{

  document.all('JobInfo').value=ajax.responseText;

}
相關文章
相關標籤/搜索