2019面試題總結

1.EF框架。數據庫

答:EF是微軟提供的ORM框架。編程

使用Ado.Net須要設置Connection、Command、DataSet、DataReader與數據庫交互,把不少精力放在了Ado.Net代碼上,EF框架把這些進行了封裝,在訪問數據庫的時候不用關注這些,EF把數據庫中的表映射到程序中的實體類中,直接操做實體類來完成對數據庫的操做。數組

2.session與cookie的區別?瀏覽器

答:cookie以文本格式存儲在瀏覽器上,存量有限,若不設置過時時間,則表示這個cookie的生命期爲瀏覽器會話期間,關閉瀏覽器窗口,cookie就消失。安全

若設置了過時時間,瀏覽器就會把cookie保存到硬盤上,關閉後再次打開瀏覽器,這些cookie仍然有效直到超過設定的過時時間。cookie

session存儲在服務端,比cookie安全,session過時/失效(默認30分鐘)。session

3.數據庫中,事物的性質?數據結構

答:原子性:要麼所有成功,要麼所有失敗。架構

一致性:數據庫從一個一致性狀態變換到另外一個一致性狀態;假設用戶A和用戶B二者的錢加起來一共是5000,那麼無論A和B之間如何轉帳,轉幾回帳,事務結束後兩個用戶的錢相加起來應該還得是5000併發

隔離性:當多個用戶併發訪問數據庫時,操做同一張表,數據庫爲每個用戶開啓的事務,不能被其餘事務的操做所幹擾,多個併發事務之間要相互隔離。

持久性:一個事務一旦被提交了,那麼對數據庫中的數據的改變就是永久性的,即使是在數據庫系統遇到故障的狀況下也不會丟失提交事務的操做。

4.什麼時候必須生命一個類爲抽象類?

答:當這個類中包含抽象方法時,或是該類並無徹底實現父類的抽象方法時。

5.MVC框架中ActionResult、JsonResult、ContentResult哪一個能夠return view()

答:ActionResult

6.Aspx頁面中,updatepanel的做用是什麼?

答:局部刷新

7.能夠採用foreach迭代的類對象必須知足什麼條件。

答:須要實現IEnumerable接口或聲明GetEnumerator方法的類型。

8..net環境下把數據庫數據轉化成XML

答:     DataTable dt = new DataTable("Table");//設置Table名稱
            dt.Columns.Add("name", System.Type.GetType("System.String"));//添加列
            dt.Columns.Add("age", System.Type.GetType("System.Int32"));
            DataRow dr = dt.NewRow();//建立新行
            dr["name"] = "會划水的武大郎";
            dr["age"] = 24;
            dt.Rows.Add(dr);//添加數據
            StringWriter writer = new StringWriter();
            dt.WriteXml(writer);
            string xmlstr = writer.ToString();//DataTable轉XML
            writer.Close();

9. 點擊按鈕,彈出確認對話框,點擊肯定後彈出「刪除完畢」

 答: var str = confirm("請選擇點擊一個按鈕!");
        if (str == true) {
            alert("刪除完畢");
        }
        else {
            alert("關閉對話框");

            return;
        }

10.請寫出一個JSON的例子

答:{"name":"小明","age":27}

11.for和foreach那個效率更高?

答:須要循環數組結構的數據使用時,建議for循環,由於for循環採用下標訪問,對於數組結構的數據來講,採用下標訪問比較好。

      須要循環鏈表結構的數據時,不要使用for循環,數據量大的時候有可能會致使系統崩潰,緣由是由於foreach使用的是迭代器。

      因此foreach效率更高。

12.WebService基於什麼協議?

答:使用SOAP協議實現跨編程語言和跨操做系統平臺。

13.聲明靜態數據庫鏈接對象,全部業務類都引用該靜態連接對象訪問數據庫?

答:可能不可用,會引發隊列延遲等問題。

14.C#提供一個默認的無參構造函數,當我實現了另一個有一個參數的構造函數時,還想保留這個無參數的構 造函數。這樣我應該寫幾個構造函數?

答:兩個,一旦你實現了一個構造函數,C#就不會再提供默認的構造函數了,因此須要手動實現那個無參構造函數。

15.可以阻止某一個類被其餘類繼承麼? 可以實現容許某個類被繼承,但不容許其中的某個方法被覆寫麼?

答:使用關鍵字sealed,密封類不容許被繼承。標記這個類爲public,並標記這個方法爲sealed。

16.什麼事強類型,C#是嗎,JS呢?

答:對象的類型在編譯時刻肯定。C#強類型、JS弱類型。

17.金額等精確的數值聲明爲何類型?

答:decimal

18.經過程序控制GC的強制回收是否能夠提升效率?

答:顯式執行GC.Collect()有可能給內存回收增長負擔,並且不必定能真正回收內存

19.int與int?的區別

答:int?爲可空類型,把值類型裝箱爲引用類型,int是值類型,不能設置爲null

20.求數列(1,1,2,3,5,8...)的和

答:public int GetNum(int x)
    {
        if (x <= 0)
        {
            return 0;
        }
        if (x == 1 || x == 2)
        {
            return 1;
        }
        return GetNum(x - 2) + GetNum(x - 1);
    }

21.B/S架構下,在session中存儲一個DataTable的對象y,在何時會被GC自動回收?這種方式存儲數據是否合理?若是application增長了對y的引用,何時會被回收?

答:Session超時失效後,GC隨機回收。Application對Y的引用回收,在重啓或者關閉iis時發生。

22.System.String與System.StringBuilder有什麼區別?

答:System.String是不可變的字符串。System.StringBuilder存放了一個可變的字符串,使用append方法串修改字符串。

StringBuilder底層數據結構是char數組。

23.舉例寫一個單利模式

答:public sealed class Singleton

{

        public static Singleton instance = null;

        private Singleton(){}

        public static Singleton Instance(){

            if( instance == null ){

                 instance = new Singleton();

            }

            return instance;

}

24.描述一下abstract、virtual、override各自的做用於區別

答:irtual和abstract都是用來修飾父類的,經過覆蓋父類的定義,讓子類從新定義。

virtual修飾的方法必須有實現,而abstract修飾的方法必定不能實現。

virtual能夠被子類重寫,而abstract必須被子類重寫。

override重寫的基方法必須是 virtual、abstract 或 override 的修飾,從新父類。

25.冒泡排序

答:    int[] arrays = { 1, 8, 5, 9, 4, 5, 4, 3, 7, 6 };

            for (int i = 0; i < arrays.Length - 1; i++)
            {
                for (int j = 0; j < arrays.Length - i - 1; j++)
                {
                    if (arrays[j] > arrays[j + 1])
                    {
                        int temp = arrays[j];
                        arrays[j] = arrays[j + 1];
                        arrays[j + 1] = temp;
                    }
                }
            }

26.二分法

答: public static int BinarySearch(int[] arr,int value)
        {
            int low = 0;
            int high = arr.Length - 1;
            while(low<=high)
            {
                int middle = (low + high) / 2;
                if (value == arr[middle])
                {
                    return middle;
                }
                else if(value >arr[middle])
                {
                    low = middle + 1;
                }
                else
                {
                    high = middle - 1;
                }
            }
            return -1;
        }

27.int、string、Hashable、DataTable、DateTime中哪些是引用類型?

答:string、Hashtable、DataTable

28.查詢A表中的id字段,若是不足8位,前面補充0。

答:select left(replicate('0',8-len(id)) + ltrim(id),8) from A

29.MVC中有幾種路由?

答:

30.MVC中的過濾器。

答:

相關文章
相關標籤/搜索