1.簡述區別:string str=null、string str=」」、string str=string.emptyjavascript
答:html
string str = null; 定義了一個字符串對象,賦值爲null也就是沒有分配內存java
string str=」」分配了內存空間 ,值爲空
web
string.Empty 是系統預約義的一個空字符串對象(長度爲0的字符串對象)已經分配內存了算法
2. C#中能使用指針嗎?怎麼使用?數據庫
答:C#僅是語言層面的,因此C#自己是存在指針類型的,能夠引用指針。但在.net開發時,凡是使用指針、開闢內存等不受託管處理的都爲非安全開發。也就是說,指針之類的引用在.net中必須加在unsafe關鍵詞之詞。並且在編譯時也必須選中容許非安全編譯才能夠經過。編程
若是不在unsafe中,.net是不容許使用指針類型的。非安全程序的優勢,性能較高,能夠寫較高性能的程序代碼;但劣勢也是十分明顯——不支持移植性,GC甚至沒法管理內存等系統資源等等。因此通常狀況下不建議非安全編程,在安全編程中是不能夠有指針等類型的!3.什麼是三層架構?後端
答:三層架構輯層、數據訪問層。區分層次的目的即爲了「高內聚低耦合」的思想。在軟件體系架構設計中,分層式結構是最多見,也是最重要的一種結構。微軟推薦的分層式結構通常分爲三層,從下至上分別爲:數據訪問層、業務邏輯層(又或稱爲領域層)、表示層。設計模式
4.C#是否能夠對內存直接進行操做?數組
答:C#能夠直接對內存進行操做。可是默認狀況下,爲了保持類型安全,C#不支持指針運算。不過,經過使用 unsafe 關鍵字,能夠定義可以使用指針的不安全上下文。
5.多線程編程中,sleep()和wait()有什麼區別?Int DataTime是否能夠爲null?
答:因此sleep()和wait()方法的最大區別是:sleep()睡眠時,保持對象鎖,仍然佔有該鎖;其餘線程沒法訪問,而wait()睡眠時,釋放對象鎖。其餘線程能夠訪問。
Int DataTime,在賦值時未給予賦值,此時系統會分配給它一個最小的時間,不會是null值,Int DataTime,不會有null類型,C#提供了「可空類型」這種語法,只要在類型後加?就構成了可空的數據類型,好比int?、bool?,這樣int? i=null 就能夠了
6.Short s1=1;s1=s1+1;兩句代碼有錯嗎?請指出爲何?簡述UDP和TCP的區別?
答:s1 + 1,s1是short類型,1是int型,s1會自動轉換爲int型的1,與1相加後,獲得int型的2,要向左側的short類型的s1看齊,即須要經過強制類型轉換。正確寫法:s1 = (short) (s1 + 1);
UDP是面向無鏈接的通信協議,UDP數據包括目的端口號和源端口號信息。
優勢:UDP速度快、操做簡單、要求系統資源較少,因爲通信不須要鏈接,能夠實現廣播發送 缺點:UDP傳送數據前並不與對方創建鏈接,對接收到的數據也不發送確認信號,發送端不知道數 據是否會正確接收,也不重複發送,不可靠。
TCP是面向鏈接的通信協議,經過三次握手創建鏈接,通信完成時四次握手
優勢:TCP在數據傳遞時,有確認、窗口、重傳、阻塞等控制機制,能保證數據正確性,較爲可靠。
缺點:TCP相對於UDP速度慢一點,要求系統資源較多
7. String s=new String(「abc」);建立了幾個String Object?
答:若是在字符串常量池中不存在其表明的對象,就建立兩個,若是存在就建立一個.
8.代碼編程題:1 1 2 3 5 8 13 21 34……遞歸算法算出第n位上的數?
public int fn(n)
{
if(n<=2){
return 1
}
else{
return fn(n-1)+fn(n-2)
}
}複製代碼
9.編寫一個冒泡排序?
int[] list= { 5, 9, 15, 22, 30 }
public int[] fn(int[] list)
{
int temp=0;//用於進行交換的臨時數
for(int i=0;i<=list.Length;i++){
for(int j=0;j<list.Length-1-i;j++){
if (list[j - 1] > list[j]) { temp = list[j - 1]; list[j - 1] = list[j]; list[j] = temp; }
}
}
return list;
}複製代碼
10.OOP中字段封裝完叫屬性,那麼在set訪問器中有個隱藏的參數名稱叫什麼?簡述什麼是Code-Behind技術?
答:
public string Name
{
get{
return name;
}
set
{
name = value;
}
}
複製代碼
在set訪問器中隱藏的參數名是value他的類型和聲明的屬性類型相同
Code-Behind技術 就是代碼隱藏,在ASP.NET中經過ASPX頁面指向CS文件的方法實現顯示邏輯和處理邏輯的分離,這樣有助於web應用程序的建立。好比分工,美工和編程的能夠個幹各的,不用再像之前asp那樣都代碼和html代碼混在一塊兒,難以維護
11.請簡述List<T>和Dictionary<K,V>的區別和優點?
答:List<T>就是一個集合,它能夠存儲某種類型的列表, Dictionary<T1,T2>咱們俗稱其爲字典,他包含一個Key和與之對應的Value,其目的是可以根據Key迅速地找到Value相比之下List<T>的效率要快不少在Dictionary中,除了要存儲咱們實際須要的Value外,還須要一個輔助變量Key,這就形成了內存空間的雙重浪費(摘抄自百度:一樣是集合,爲何性能會有這樣的差距。咱們要從存儲結構和操做系統的原理談起。
而HashTable或者Dictionary,他是根據Key而根據Hash算法分析產生的內存地址,所以在宏觀上是不連續的,雖然微軟對其算法也進行了很大的優化。
因爲這樣的不連續,在遍歷時,Dictionary必然會產生大量的內存換頁操做,而List只須要進行最少的內存換頁便可,這就是List和Dictionary在遍歷時效率差別的根本緣由)
12.簡述一下.net MVC設計模式和工做原理?
答:MVC是一種軟件開發架構,它包含了不少的設計模式,最爲密切是如下三種:觀察者模式,組合模式和策略模式
MVC架構把數據處理,程序輸入輸出控制及數據顯示分離開來,而且描述了不一樣部件的對象間的通訊方式,使得軟件可維護性,可擴展性,靈活性以及封裝性大大提升。
MVC(Model-View-Controller)把系統的組成分解爲M(模型)、V(視圖)、C(控制器)三種部件。V(視圖)表示數據在屏幕上的顯示;C(控制器)提供處理過程控制,它在模型和視圖之間起鏈接做用。控制器自己不輸出任何信息和作任何處理,它只負責把用戶的請求轉成針對Model的操做,和調用相應的視圖來顯示Model處理後的數據。
13.簡述asp.net六大內置對象及用法?
答:
Response對象:Response對象是HttpResponse類的一個對象,與一個HTTP響應相對應,經過該對象的屬性和方法能夠控制如何將服務器端的數據發送到客戶端瀏覽器
Application對象:Application對象在實際網絡開發中的用途就是記錄整個網絡的信息,如上線人數、在線名單、意見調查和網上選舉等。在給定的應用程序的多有用戶之間共享信息,並在服務器運行期間持久的保存數據
Session對象:內置對象Session負責存儲、讀取和改變一個特定用戶的會話信息,對於每一個用戶的每次訪問Session對象都是惟一的。14. Get和Post區別?
答:get請求會暴露用戶請求的參數在url地址中,而且數據有大小限制,可是處理速度快
post請求不會暴露用戶的請求參數,對數據沒有大小限制,可是處理速度相對get請求較慢
15.簡述WebService技術及在開發過程當中的使用?
答:WebService採用HTTP協議傳輸數據,採用XML格式封裝數據。XML是WebService平臺中表示數據的格式。除了易於創建和易於分析外,XML主要的優勢在於它既是平臺無關的,又是廠商無關的。無關性是比技術優越性更重要的,在開發過程當中WebService向外界暴露出一個能經過Web進行調用的API,客戶端能夠經過請求這個接口來獲取數據。實現先後端的分離加快開發效率
16.什麼是SQL注入式攻擊,如何方法?
答:所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務器執行惡意的SQL命令,從而對數據庫的數據進行操做的一種攻擊手段
1.進行字符替換,替換掉一些敏感字符
2.使用存儲過程完成數據的查詢
3.限制表單輸入的字符長度
4.在後端對用戶輸入的信息校驗合法性
5.檢查提取數據的查詢所返回的記錄數量
6.將用戶登陸名稱、密碼等數據加密保存進行消毒處理
17.簡述HTML和服務器控件的區別?
答:html 就是咱們一般的說的 html 語言標記,這些語言標記在已往的靜態頁面和其餘網頁裏存在,不能在服務器端控制的,只能在客戶端經過 javascript等程序語言來控制
asp.net的服務器控件是運行在服務器上的,直接封裝了操做該控件的方法,先後代碼不分離
一個運行在客戶端一個運行在服務端
18. Asp.net中你知道多少種頁面傳值的方式,請一一列舉
答:
1.Request.QueryString:獲取http查詢字符串變量集合即Request.QueryString[string name]
2.Request.Form:獲取窗體變量集合即Request.Form[string name]
3.Session:即Session["string"]=string
19.什麼是SoAP協議?
答:SOAP是Web Service的通訊協議。當用戶經過UDDI找到你的WSDL描述文檔後,他經過能夠SOAP調用你創建的Web服務中的一個或多個操做。SOAP是XML文檔形式的調用方法的規範,能夠支持不一樣的底層接口,像HTTP(S)或者SMTP。應用程序經過使用遠程過程調用(RPC)在諸如 DCOM 與 CORBA 等對象之間進行通訊的方式會產生兼容性以及安全問題;防火牆和代理服務器一般會阻止此類流量。經過 HTTP 在應用程序間通訊是更好的方法,由於 HTTP 獲得了全部的因特網瀏覽器及服務器的支持。SOAP 提供了一種標準的方法,使得運行在不一樣的操做系統並使用不一樣的技術和編程語言的應用程序能夠互相進行通訊。
20.簡述ADO.NET五大對像?
答:
一、Connection(鏈接數據庫)
二、Command(執行T-SQL語句)
四、DataReader(讀取數據庫,一種只讀模式)