C#基礎(chǔ)面試題
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
1.面向?qū)ο蟮乃枷胫饕ㄊ裁矗?/strong> 繼承,封裝,多態(tài) 2.簡(jiǎn)述private、protected、public、internal修飾符權(quán)限 Private:私有成員,在類的內(nèi)部才能訪問 Protected:保護(hù)成員,在類的內(nèi)部和繼承中訪問 Public:公開成員,沒有訪問限制 Internal:當(dāng)前程序集內(nèi)訪問 3.什么是override和interface? override用于重寫父類的虛方法和抽象方法,interface用于定義接口 4.Abstract class和interface有什么區(qū)別? Abstract class可以定義屬性,字段及實(shí)現(xiàn)方法,不能多繼承,只能用于引用類型 interface只能包含方法并且不能實(shí)現(xiàn),可以多繼承,可以用于值類型和引用類型 5.Struct和class的相同和不同? 相同點(diǎn):都可以定義字段、屬性和方法,可以通過new來初始化對(duì)象 不同點(diǎn):struct是值類型,class是引用類型,struct可以繼承接口不可以繼承class,class既可以繼承接口,又可以繼承class 6.C#中委托時(shí)什么?事件是不是一種委托? 委托是一種引用類型,保存的是對(duì)函數(shù)的引用。事件是一種特殊的委托。 7.堆和棧的區(qū)別? 棧是編譯期間就分配好的內(nèi)存空間 堆是程序運(yùn)行期間動(dòng)態(tài)分配的內(nèi)存空間 8.Float f=123.567F; int i=(int)f; i的值現(xiàn)在是123? 9.String s=new String(“xyz”);創(chuàng)建了幾個(gè)Object? 兩個(gè)string對(duì)象 10.Short s1=1;s1=s1+1;有什么錯(cuò)? Short s1=1;s1+=1;有什么錯(cuò)? 第一個(gè)有可能導(dǎo)致數(shù)據(jù)溢出,第二個(gè)short類型沒有+=運(yùn)算符 11.C#中,string str=null與string str=””,請(qǐng)盡量用文字說明區(qū)別? null 表示沒有引用任何對(duì)象,而空字符串 "" 表示引用了一個(gè)空對(duì)象 12.請(qǐng)簡(jiǎn)述一下兩個(gè)for循環(huán)的優(yōu)缺點(diǎn)? 第一個(gè)for執(zhí)行的次數(shù)可能少于第二個(gè),第二個(gè)for循環(huán)if判斷的次數(shù)少 13.在下面的例子里,當(dāng)使用 new B()創(chuàng)建B的實(shí)例時(shí),產(chǎn)生什么輸出? X=1,y=-1 14.寫出程序的輸出結(jié)果 10,21,1,str,string being converted 15.寫出程序的輸出結(jié)果 B,B,Fun() 16.寫出程序的輸出結(jié)果 2 5 1 6 17.什么是進(jìn)程和線程? 進(jìn)程是程序執(zhí)行的實(shí)例,線程是程序執(zhí)行的最小單位。 18.進(jìn)程間通信的方式? 管道通信,信號(hào)量通信 19.死鎖的必要條件?怎么克服? 互斥,等待; 20.根據(jù)線程安全的相關(guān)知識(shí),分析以下代碼,當(dāng)調(diào)用test 方法時(shí)i>10時(shí)是否會(huì)引起死鎖?并簡(jiǎn)要說明理由。 會(huì)引起死鎖,該線程遞歸調(diào)用test(i)時(shí),它將再次嘗試獲取同一個(gè)鎖。由于鎖不能被釋放,所以這個(gè)線程將被阻塞 21.UDP連接和TCP連接的異同? UDP是無連接的TCP是面向連接的 22.實(shí)現(xiàn)快速排序 static void QuickSortAlgorithm(int[] arr, int low, int high) { if (low < high) { int pi = Partition(arr, low, high); QuickSortAlgorithm(arr, low, pi - 1); QuickSortAlgorithm(arr, pi + 1, high); } }
static int Partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = (low - 1); // index of smaller element for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; Swap(arr, i, j); } } Swap(arr, i + 1, high); return i + 1; }
static void Swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } 23.實(shí)現(xiàn)單例模式
24.什么是存儲(chǔ)過程?有什么優(yōu)點(diǎn)? 存儲(chǔ)過程是一組sql語句,有點(diǎn)是執(zhí)行速度快、減少網(wǎng)絡(luò)流量、安全 25.寫出一條Sql語句:取出表A中第31到第40記錄 (SQLSever, 以自動(dòng)增長(zhǎng)的ID作為主鍵,注意:ID可能不是 連續(xù)的) select * from(select row_number() over(order by Id asc)as index,* from A)aa where index between 31 and 40 26.用一條SQL語句,查詢出每門課都大于80分的學(xué)生姓名 select distinct name from(select min(fenshu) over(partition by name)aa, * from tt) a where aa>80 該文章在 2023/11/16 21:51:05 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |