- 相關(guān)推薦
.net筆試題
在平時的學(xué)習(xí)、工作中,我們都要用到試題,借助試題可以為主辦方提供考生某方面的知識或技能狀況的信息。大家知道什么樣的試題才是好試題嗎?下面是小編為大家收集的net筆試題,僅供參考,大家一起來看看吧。
.net筆試題 1
今天去一家公司筆試,主要是.net方向的,拿出來做個總結(jié)
1 .net讀取數(shù)據(jù)庫用到哪些類
DataSet: 數(shù)據(jù)存儲器。
DataCommand: 執(zhí)行語句命令。
DataAdapter: 數(shù)據(jù)的集合,用語填充。
2 是否可以繼承string類
String類是final類故不可以繼承。
3 remoting 和 webservice
1、Remoting可以靈活的定義其所基于的協(xié)議,如果定義為HTTp,則與Web Service就沒有什么區(qū)別了,一般都喜歡定義為TCp,這樣比Web Service稍為高效一些。
2、Remoting不是標(biāo)準(zhǔn),而Web Service是標(biāo)準(zhǔn)。
3、Remoting一般需要通過一個WinForm或是Windows服務(wù)進(jìn)行啟動,而Web Service則需要IIS進(jìn)行啟動。
4、在VS.net開發(fā)環(huán)境中,專門對Web Service的調(diào)用進(jìn)行了封裝,用起來比Remoting方便。
我建議還是采用Web Service好些,對于開發(fā)來說更容易控制。Remoting一般用在C/S的系統(tǒng)中,Web Service是用在B/S系統(tǒng)中,后者還是各語言的通用接口,相同之處就是都基于XML。
為了能清楚地描述Web Service 和Remoting之間得區(qū)別,我打算從他們的體系結(jié)構(gòu)上來說起:
Web Service大體上分為5個層次:
1. HTTp 傳輸信道
2. XML 數(shù)據(jù)格式
3. SOAp 封裝格式
4. WSDL 描述方式
5. UDDI 體系框架
總體上來講,.NET 下的 Web Service結(jié)構(gòu)比較簡單,也比較容易理解和應(yīng)用,一般來講在.NET結(jié)構(gòu)下的WebService應(yīng)用都是基于.net framework以及IIS的架構(gòu)之下,所以部署(Dispose)起來相對比較容易點(diǎn)。
從實(shí)現(xiàn)的角度來講,首先WebService必須把暴露給客戶端的方法所在的類繼承于:System.Web.Services.WebService這個基類;其次所暴露的方法前面必須有[WebMethod]或者[WebMethodAttribute] 。
WebService的運(yùn)行機(jī)理。首先客戶端從服務(wù)器的到WebService的WSDL,同時在客戶端聲稱一個代理類(proxy Class)
這個代理類負(fù)責(zé)與WebService服務(wù)器進(jìn)行Request 和Response,當(dāng)一個數(shù)據(jù)(XML格式的)被封裝成SOAp格式的數(shù)據(jù)流發(fā)送到服務(wù)器端的時候,就會生成一個進(jìn)程對象并且把接收到這個Request的SOAp包進(jìn)行解析,然后對事物進(jìn)行處理,處理結(jié)束以后再對這個計(jì)算結(jié)果進(jìn)行SOAp包裝,然后把這個包作為一個Response發(fā)送給客戶端的代理類(proxy Class),同樣地,這個代理類也對這個SOAp包進(jìn)行解析處理,繼而進(jìn)行后續(xù)操作。這就是WebService的一個運(yùn)行過程。
下面對.NET Remoting進(jìn)行概括的闡述:
.NET Remoting 是在DCOM等基礎(chǔ)上發(fā)展起來的一種技術(shù),它的主要目的是實(shí)現(xiàn)跨平臺、跨語言、穿透企業(yè)防火墻,這也是他的基本特點(diǎn),與WebService有所不同的.是,它支持HTTp以及TCp信道,而且它不僅能傳輸XML格式的SOAp包,也可以傳輸傳統(tǒng)意義上的二進(jìn)制流,這使得它變得效率更高也更加靈活。而且它不依賴于IIS,用戶可以自己開發(fā)(Development)并部署(Dispose)自己喜歡的宿主服務(wù)器,所以從這些方面上來講WebService其實(shí)上是.NET Remoting的一種特例。
1、Remoting 是MarshByReference的,可以傳變量的引用,直接對服務(wù)器對象操作。速度快,適合Intranet(企業(yè)內(nèi)部互聯(lián)網(wǎng))。WebService 是MarshByValue的,必須傳對象的值。速度慢,可以過FIREWALL,配置比較簡單,適合Internet(因特網(wǎng))。
2、 一般來說,Remoting是和平臺相關(guān)的,需要客戶和服務(wù)器都是.NET,但可配置特性比較好,可以自定義協(xié)議。WebService可以做到跨平臺通信,但必須采用SOAp協(xié)議。
3、 SOAp消息有RpC和文檔兩種樣式。 文檔樣式的body元素中包含一個或多個元素,可以是任何內(nèi)容,只要接受者理解就行了。rpc樣式的的body元素中包含調(diào)用的方法或遠(yuǎn)程過程的名稱,以及代表方法參數(shù)的元素。
4 .net中讀寫XML的類歸屬命名空間
任何類型的項(xiàng)目都可以通過System.XML命名空間進(jìn)行XML處理
使用System.Xml命名空間中的XmlDocument類來操作xml的數(shù)據(jù)
5 裝箱和拆箱
裝箱:將值類型轉(zhuǎn)換為引用類型。
拆箱:將引用類型轉(zhuǎn)換為值類型。
6 asp.net身份驗(yàn)證有哪些
Asp.net的身份驗(yàn)證有有三種,分別是"Windows | Forms | passport",
passport由 Microsoft 提供的集中身份驗(yàn)證服務(wù),用于為成員站點(diǎn)提供單一登錄和核心配置服務(wù)。
Windows 身份驗(yàn)證 ASp.NET 會結(jié)合 Internet 信息服務(wù) (IIS) 身份驗(yàn)證使用 Windows 身份驗(yàn)證
Forms 身份驗(yàn)證 通過其可將沒有通過身份驗(yàn)證的請求重定向到使用 HTTp 客戶端重定向的 HTML 窗體的系統(tǒng)
7 asp.net頁面之間傳值的幾種方式
ASp.NET為我們提供了三種方式,一種是可以通過用QueryString來傳送相應(yīng)的值,再一種是通過session變量來傳送相應(yīng)的值,還有就是通過Server.Transfer方法來實(shí)現(xiàn)。
8 ASp.NET頁面跳轉(zhuǎn)的幾種方法
標(biāo)簽 1.
Server.Transfer()方法 1.
.net筆試題 2
一、試題
1.說說什么是架構(gòu)模式。
2.架構(gòu)的5大要素是哪5大要素?
3.說說什么事集群,什么是分布式。
4.說說對Redis的理解
5.你所了解的NoSql除了Redis還有哪些?
6.談?wù)剬ο㈥?duì)列的理解
7.說說你對數(shù)據(jù)庫讀寫分離的理解
8.如果你的系統(tǒng)功能中出現(xiàn)性能問題,說說你的排查計(jì)劃。
9.請列出常見的緩存方式,并簡要概述其優(yōu)缺點(diǎn)。
10.談?wù)剬νㄐ偶用芙饷艿睦斫狻?/p>
11.CTS、CLS、CLR分別作何解釋?
12.PDB是什么東西? 在調(diào)試中它應(yīng)該放在哪里?
13.C#中Params是什么含義?有何用途?
14.說說對http 301、302、303,304、400、405、415狀態(tài)碼的認(rèn)識;
15.請使用C#的相關(guān)知識,封裝一個泛型的數(shù)據(jù)庫訪問查詢方法;
16.什么是異步編程?
17.架構(gòu)模式(Architectural Pattern) 設(shè)計(jì)模式(Design Pattern) 代碼模式(Coding Pattern)的區(qū)別是什么?
18.軟件架構(gòu)的目標(biāo)是什么?
19.什么是迪米特法則?
20.解釋一下里氏替換原則?
21.什么是依賴倒轉(zhuǎn)IOC原則?
22.為何說基于 SOAP 的服務(wù)是重量級的服務(wù),Rest是輕量級的?
23.基于REST 和基于SOAP的服務(wù)的區(qū)別是什么?
24.工廠模式,簡單工廠模式,抽象工廠模式三者有什么區(qū)別
25.Session有什么重大BUG,微軟提出了什么方法加以解決?
26.NET下內(nèi)存分配機(jī)制是什么?
27.如何提高.NET的性能 ?
28.如果你有無窮多的水,一個3公升的提捅,一個5公升的提捅,兩只提捅形狀上下都不均勻,問你如何才能準(zhǔn)確稱出4公升的水?
29.在一天的24小時之中,時鐘的時針、分針和秒針完全重合在一起的時候有幾次?都分別是什么時間?你怎樣算出來的?
30.一張長方形的桌面上放n個一樣大小的圓形硬幣。這些硬幣中可能有一些不完全在桌面內(nèi),也可能有一些彼此重疊;當(dāng)再多放一個硬幣而它的圓心在桌面內(nèi)時,新放的硬幣便必定與原先某些硬幣重疊。請證明整個桌面可以用4n個硬幣完全覆蓋
31.三名傳教士和三個野蠻人同在一個小河渡口,渡口上只有一條可容兩人的小船。問題的目標(biāo)是要用這條小船把這六個人全部渡到對岸去,條件是在渡河的過程中,河兩岸隨時都保持傳教士人數(shù)不少于野蠻人的人數(shù),否則野蠻人會把處于少數(shù)的傳教士吃掉。這六個人怎樣才能安全渡過去?
二、答案:
1.說說什么是架構(gòu)模式。
1)分層。2)分割。
分層是對網(wǎng)站進(jìn)行橫向的切分,那么分割就是對網(wǎng)站進(jìn)行縱向的切分。將網(wǎng)站按照不同業(yè)務(wù)分割成小應(yīng)用,可以有效控制網(wǎng)站的復(fù)雜程度。3)分布式。在大型網(wǎng)站中,分層和分割后主要是為了讓網(wǎng)站能夠便于分布式部署,也就是將不同的模塊部署到不同的服務(wù)器上。常用的分布式方案有如下幾種。3).1 分布式應(yīng)用和服務(wù)。3).2 分布式靜態(tài)資源。3).3 分布式數(shù)據(jù)和存儲 3).4 分布式計(jì)算。3).5 此外還有分布式配置,分布式鎖,分布式文件系統(tǒng)等。
4)集群。
分布式方案只是將不同的模塊或服務(wù)獨(dú)立部署到服務(wù)器上,但通常還是單臺服務(wù)器。集群則是將同一個模塊或服務(wù)同時部署到多臺服務(wù)器上,通過負(fù)載均衡設(shè)備對外提供服務(wù)。
5)緩存。
常用的緩存有如下幾種,CDN,反向代理,本地緩存,分布式緩存。
6)異步。
異步一般通過隊(duì)列的方式來實(shí)現(xiàn)。在單一服務(wù)器中,可以通過多線程共享內(nèi)存隊(duì)列實(shí)現(xiàn)異步。在分布式系統(tǒng)中,可以通過分布式消息隊(duì)列實(shí)現(xiàn)。異步有一些作用,描述如下。6).1,提高系統(tǒng)可用性。6).2,加快網(wǎng)站響應(yīng)速度。6).3,消除并發(fā)訪問高峰。
7)冗余 冗余的目的是實(shí)現(xiàn)高可用性。是通過使用集群來實(shí)現(xiàn)的。即使是再小的服務(wù),也要部署到至少2臺服務(wù)器上。數(shù)據(jù)庫的冗余有冷備份和熱備份兩種。冗余還包括在異地建立災(zāi)備數(shù)據(jù)中心。
8,自動化 自動化包括自動化代碼管理,自動化部署,自動化測試,自動化安全檢查等。
9,安全 安全主要通過哦密碼和手機(jī)驗(yàn)證碼的方式實(shí)現(xiàn)。
2.架構(gòu)的'5大要素是哪5大要素?
1.高性能架構(gòu) 2.高可用架構(gòu) 3.伸縮性架構(gòu) 4.可擴(kuò)展架構(gòu) 5.安全架構(gòu)
3.說說什么事集群,什么是分布式。
集群: 多臺服務(wù)器來完成業(yè)務(wù)處理,業(yè)務(wù)請求來了以后,每一臺服務(wù)器都能獨(dú)立的完成業(yè)務(wù)計(jì)算;每個服務(wù)器都是獨(dú)立的個體;多臺服務(wù)器集合起來,通常也需要做負(fù)載均衡;分布式:多臺服務(wù)器完成業(yè)務(wù)處理,也去請求來了以后,需要多個服務(wù)器合作來完成,比方說一個業(yè)務(wù)處理有5個環(huán)節(jié),可能在處理的時候,A服務(wù)器處理第一個環(huán)節(jié),B服務(wù)器處理第二個化解,C服務(wù)器處理第三個環(huán)節(jié),D服務(wù)器處理第四個環(huán)節(jié),E服務(wù)器來處理第五個環(huán)節(jié);一個業(yè)務(wù)請求的5個環(huán)節(jié),被五臺服務(wù)器來合作完成了一個業(yè)務(wù)連,此類架構(gòu)叫分布式架構(gòu);
4.說說對Redis的理解
Redis是一種基于鍵值對的NoSQL數(shù)據(jù)庫(非關(guān)系型數(shù)據(jù)庫);是一個key-value存儲系統(tǒng)Redis有兩個特點(diǎn):高能性 可靠性 高能性:Redis將所有數(shù)據(jù)都存儲在內(nèi)存中,所有讀寫性特別高 可靠性:Redis將內(nèi)存中的數(shù)據(jù)利用RDB和AOF的形式保存到硬盤中,這樣就可以避免發(fā)生斷點(diǎn)或機(jī)器故 障時內(nèi)存數(shù)據(jù)丟失的問題 功能應(yīng)用:1.數(shù)據(jù)緩存功能,減少對數(shù)據(jù)庫的訪問壓力 2.消息隊(duì)列功能(輕量級): Redis提供了發(fā)布訂閱功能和阻塞隊(duì)列功能 3.計(jì)數(shù)器-應(yīng)用保存用戶憑證 比如計(jì)算瀏覽數(shù),如果每次操作都要做數(shù)據(jù)庫的對應(yīng)更新操作,那將會給數(shù)據(jù)庫的性能帶來極大的挑戰(zhàn) 緩存:優(yōu)化網(wǎng)站性能,首頁 (不常變的信息) 存儲:單點(diǎn)登錄,購物車 計(jì)數(shù)器:登錄次數(shù)限制,incr 時效性:驗(yàn)證碼expire 訂單號:數(shù)字
redis有哪些應(yīng)用場景場景?
1.緩存數(shù)據(jù)服務(wù)器
eg: SSO單點(diǎn)登錄
2.應(yīng)對高速讀寫的場景
eg: 秒殺高可用
3.分布式鎖
eg: 秒殺數(shù)據(jù)一致性
4.數(shù)據(jù)共享
eg: 庫存數(shù)據(jù)
5.你所了解的NoSql除了Redis還有哪些?
Memcache/MongoDb
6.談?wù)剬ο㈥?duì)列的理解
對于傳統(tǒng)的應(yīng)用程序,如果需要向另一個應(yīng)用程序發(fā)送信息,只需要向其發(fā)出請求即可!這種方式雖然簡單直接,但是如果應(yīng)用程序2突然掛了,應(yīng)用程序1可能會因?yàn)榉⻊?wù)異常,而無法繼續(xù)提供服務(wù)!
設(shè)想一下,在應(yīng)用程序1和應(yīng)用程序2之間,插入一個消息服務(wù),主要用于接受消息和發(fā)送消息,這樣應(yīng)用程序1和應(yīng)用程序2之間的依賴關(guān)系就解耦了,同時也不會因?yàn)槿魏我环疆?dāng)服務(wù)不可用時,無法繼續(xù)提供服務(wù)!其中插入的消息服務(wù)被稱為消息隊(duì)列!
消息隊(duì)列帶來的優(yōu)勢:
1.程序解耦:應(yīng)用程序1和應(yīng)用程序2在進(jìn)行交互時,不會因?yàn)橐环椒⻊?wù)中斷而導(dǎo)致服務(wù)停止;
2.異步處理:程序解耦之后,帶來的最大的好處就是可以異步處理,應(yīng)用程序1只管把消息發(fā)送到消息中間件,應(yīng)用程序2只需要從消息中間件中接受消息然后進(jìn)行處理即可;同時,基于異步處理特性,在某些業(yè)務(wù)場景下,例如商品秒殺活動,引入消息隊(duì)列之后,當(dāng)客戶端請求量很大的時候,可以有效的進(jìn)行流量削峰!如果沒有中間層做緩沖,當(dāng)進(jìn)行商品秒殺時,一下突然大量請求涌入,很可能造成系統(tǒng)直接癱瘓,甚至宕機(jī)!消息隊(duì)列也會帶來很明顯的弊端:
1.系統(tǒng)可用性降低:在引入消息隊(duì)列之前,你不用考慮消息丟失或者消息隊(duì)列服務(wù)掛掉等等的情況,但是引入消息隊(duì)列之后你就需要去考慮這些問題!
2.系統(tǒng)復(fù)雜性提高:加入消息隊(duì)列之后,你需要保證消息沒有被重復(fù)消費(fèi)、處理消息沒有被正確處理的情況等等問題!
引入消息隊(duì)列雖然會帶來一些問題,俗話說,兵來將擋、水來土掩,這句話同樣適用于 IT 開發(fā)者,有坑填坑!
對于系統(tǒng)可用性降低方面,通常常用的解決方案就是搭建消息服務(wù)集群,具體技術(shù)實(shí)現(xiàn)上可以是主從架構(gòu)或者分布式架構(gòu),即時一臺消息隊(duì)列服務(wù)機(jī)器掛了,也不會影響消息隊(duì)列無法提供服務(wù)!
對于系統(tǒng)復(fù)雜性提高方面,常用的解決方案也很多,例如接受者接受到消息之后,可以先將消息寫入數(shù)據(jù)庫,即時沒有被正確處理,還可以走人工處理,或者消息消費(fèi)失敗,將消息重新入隊(duì)等待下一次消費(fèi)等等。
7.說說你對數(shù)據(jù)庫讀寫分離的理解
【.net筆試題】相關(guān)文章:
net筆試題01-20
12580筆試題01-20
360筆試題01-20
筆試-CRI 2010筆試題01-19
net面試常見問題01-17
大班筆的教案12-22
筆的世界教學(xué)反思02-19
筆試題06-10
五礦筆試題專業(yè)筆試題01-19