後端容易忘記的面試題

String s = new String("xyz");建立了幾個String Object?程序員

web

兩個對象,一個是「xyx」,一個是指向「xyx」的引用對象s。數據庫

 

請詳述在C#中類(class)與結構(struct)的異同?編程

答:class能夠被實例化,屬於引用類型,class能夠實現接口和單繼承其餘類,還能夠做爲基類型,是分配在內存的堆上的數組

  struct屬於值類型,不能做爲基類型,可是能夠實現接口,是分配在內存的棧上的.服務器

 

.try {}裏有一個return語句,那麼緊跟在這個try後的finally {}裏的code會不會被執行,何時被執行,在return前仍是後?session

併發

會執行,在return前執行。ide

 

final—修飾符(關鍵字)若是一個類被聲明爲final,意味着它不能再派生出新的子類,不能做爲父類被繼承。所以     一個類不能既被聲明爲 abstract的,又被聲明爲final的。將變量或方法聲明爲final,能夠保證它們在使用中     不被改變。被聲明爲final的變量必須在聲明時給定初值,而在之後的引用中只能讀取,不可修改。被聲明爲     final的方法也一樣只能使用,不能重載函數

finally—再異常處理時提供 finally 塊來執行任何清除操做。若是拋出一個異常,那麼相匹配的 catch 子句就會     執行,而後控制就會進入 finally 塊(若是有的話)。

 

如何處理幾十萬條併發數據?

用存儲過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的..取得最大標識要有一個存儲過程來獲取.

 

堆和棧的區別?

    棧:由編譯器自動分配、釋放。在函數體中定義的變量一般在棧上。

    堆:通常由程序員分配釋放。用new、malloc等分配內存函數分配獲得的就是在堆上。

大概描述一下ASPNET服務器控件的生命週期

初始化  加載視圖狀態  處理回發數據  加載  發送回發更改通知  處理回發事件  預呈現  保存狀態  呈現  處置  卸載

 

.&&&的區別。

&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and).

 

.<%# %>  <%  %> 有什麼區別?

  <%# %>表示綁定的數據源

  <% %>是服務器端代碼塊

請將字符串"I am a student"按單詞逆序輸出"student a am I"

     string S = "I am a student";

            char[] C = new char[] { ' '};

            string[] n =S.Split(C);

            int length = S.Length;

            for (int i =length-1 ; i >=0; i--)

            {

                Console.Write(n[i]);

                if (i != 0)

                {

                    Console.Write(" ");

                }

            }

CTS、CLS、CLR分別做何解釋?

CTS:通用語言系統。CLS:通用語言規範。CLR:公共語言運行庫。

.什麼是強類型系統?

RTTI:類型識別系統。

 

sleep()和 wait() 有什麼區別?

sleep()方法是使線程中止一段時間的方法。在sleep 時間間隔期滿後,線程不必定當即恢復執行。

這是由於在那個時刻,其它線程可能正在運行並且沒有被調度爲放棄執行,除非(a)「醒來」的線程具備更高的優先級

(b)正在運行的線程由於其它緣由而阻塞。

wait()是線程交互時,若是線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對象進入等待狀態,直到被喚醒或等待時間到。

 

WebService的運行機理(運行過程)
  首先客戶端從服務器的到WebService的WSDL,同時在客戶端聲稱一個代理類(Proxy   Class)    這個代理類負責與WebService服務器進行Request   和Response     
  當一個數據(XML格式的)被封裝成SOAP格式的數據流發送到服務器端的時候,就會生成一個進程對象而且把接收到這個Request的SOAP包進行解析,而後對事物進行處理,處理結束之後再對這個計算結果進行SOAP包裝,而後把這個包做爲一個Response發送給客戶端的代理類(Proxy   Class),一樣地,這個代理類也對這個SOAP包進行解析處理,繼而進行後續操做。  
 
下面對.net   Remoting進行歸納的闡述:     
.net   Remoting   是在DCOM等基礎上發展起來的一種技術,它的主要目的是實現跨平臺、跨語言、穿透企業防火牆,這也是他的基本特色,與WebService有所不一樣的是,它支持HTTP以及TCP信道,並且它不只能傳輸XML格式的SOAP包,也能夠傳輸傳統意義上的二進制流,這使得它變得效率更高也更加靈活。並且它不依賴於IIS,用戶能夠本身開發(Development)並部署(Dispose)本身喜歡的宿主服務器,因此從這些方面上來說WebService其實上是.net   Remoting的一種特例。
 
.net  Remoting的特色是     
他的優勢是用戶既可使用TCP信道方式進行二進制流方式通訊,也可使用HTTP信道進行SOAP格式的性通訊  ,效率相對WebService要高很多;可是它的缺點也很明顯,.net   remoting只能應用於MS 的.net Framework之下。
從性能上來說Remoting的效率和傳統的DCOM、COM+的性能很相近!
 
.數組有沒有length()這個方法? String有沒有length()這個方法? 
數組沒有length()這個方法,有length的屬性。String有有length()這個方法。 
 
子類對父類中虛方法的處理有重寫( override )和覆蓋( new ),請說明它們的區別?
有父類ParentClass和子類ChildClass、以及父類的虛方法VirtualMethod。有以下程序段:
ParentClass pc = new ChildClass();pc.VirtualMethod(...);
若是子類是重寫(override)父類的VirtualMethod,則上面的第二行語句將調用子類的該方法
若是子類是覆蓋(new)父類的VirtualMethod,則上面的第二行語句將調用父類的該方法
 
基於值類型的變量直接包含值。將一個值類型變量賦給另外一個值類型變量時,將複製包含的值。這與引用類型變量的賦值不一樣,引用類型變量的賦值只複製對對象的引用,而不復制對象自己。全部的值類型均隱式派生自 System.ValueType。與引用類型不一樣,從值類型不可能派生出新的類型。
 
與引用類型不一樣,值類型不可能包含 null值。然而,可空類型功能容許將 null 賦給值類型。
每種值類型均有一個隱式的默認構造函數來初始化該類型的默認值

C#中的接口和類有什麼異同。

異:不能直接實例化接口。接口不包含方法的實現。接口、類和結構可從多個接口繼承。可是C# 只支持單繼承:類只能從一個基類繼承實現。類定義可在不一樣的源文件之間進行拆分。

同:接口、類和結構可從多個接口繼承。接口相似於抽象基類:繼承接口的任何非抽象類型都必須實現接口的全部成員。接口能夠包含事件、索引器、方法和屬性。一個類能夠實現多個接口。

 

UDP鏈接和TCP鏈接的異同。

TCP---傳輸控制協議,提供的是面向鏈接、可靠的字節流服務。當客戶和服務器彼此交換數據前,必須先在雙方之間創建一個TCP鏈接,以後才能傳輸數據。TCP提供超時重發,丟棄重複數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另外一端。 
UDP---用戶數據報協議,是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,可是並不能保證它們能到達目的地。因爲UDP在傳輸數據報前不用在客戶和服務器之間創建一個鏈接,且沒有超時重發等機制,故而傳輸速度很快。

 

請解釋web.config文件中的重要節點

一、<authentication> 節做用:配置 ASP.NET 身份驗證支持(爲Windows、Forms、PassPort、None四種)

二、<authorization> 節做用:控制對 URL 資源的客戶端訪問

3.<compilation>節做用:配置 ASP.NET 使用的全部編譯設置。默認的debug屬性爲「True」.

4.<customErrors>做用:爲 ASP.NET 應用程序提供有關自定義錯誤信息的信息。它不適用於 XML Web services 中發生的錯誤。

五、<httpRuntime>節做用:配置 ASP.NET HTTP 運行庫設置。該節能夠在計算機、站點、應用程序和子目錄級別聲明。 

六、 <pages>做用:標識特定於頁的配置設置(如是否啓用會話狀態、視圖狀態,是否檢測用戶的輸入等)。

7.  <sessionState>  做用:爲當前應用程序配置會話狀態設置(如設置是否啓用會話狀態,會話狀態保存位置)。 

八、<trace>  做用:配置 ASP.NET 跟蹤服務,主要用來程序測試判斷哪裏出錯。

 

您在什麼狀況下會用到虛方法?它與接口有什麼不一樣?

當在繼承類中想重寫某一方法時會用到虛方法;虛方法是類的成員函數,接口至關於抽象類

 

維護數據庫的完整性、一致性、你喜歡用觸發器仍是自寫業務邏輯?爲何

儘量用約束(包括CHECK、主鍵、惟一鍵、外鍵、非空字段)實現,這種方式的效率最好;其次用觸發器,這種方式能夠保證不管何種業務系統訪問數據庫都能維持數據庫的完整性、一致性;最後再考慮用自寫業務邏輯實現,但這種方式效率最低、編程最複雜,當爲下下之策。

相關文章
相關標籤/搜索