日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
面試干貨——年底干貨大放送,你準備好了嗎?

  

創(chuàng)新互聯(lián)建站專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、通河網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5建站、商城網(wǎng)站制作、集團公司官網(wǎng)建設、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為通河等各大城市提供網(wǎng)站開發(fā)制作服務。

對于一些基礎的筆試和簡單的面試題,博主就不照本宣科了。本篇就結合博主遇到以及網(wǎng)上經(jīng)??吹降囊恍┟嬖囶}做一個總結。PS:由于博主用的主要編程語言是C#,所以本篇主要介紹關于.net面試中的常見問題。

一、對于 Web 性能優(yōu)化,您有哪些了解和經(jīng)驗嗎?

出現(xiàn)指數(shù):五顆星

主要考點:這道題是博主在博客園的新聞里面看到的,回想之前幾年的面試經(jīng)歷,發(fā)現(xiàn)此題出現(xiàn)概率還是比較高的。因為它的考面灰常廣,可以讓面試官很快了解你的技術涉及面以及這些技術面的深度。

參考答案:這個問題可以分前端和后端來說。

1、前端優(yōu)化

(1)減少 HTTP 請求的次數(shù)。我們知道每次發(fā)送http請求,建立連接和等待相應會花去相當一部分時間,所以在發(fā)送http請求的時候,盡量減少請求的次數(shù),一次請求能取出的數(shù)據(jù)就不要分多次發(fā)送。

(2)啟用瀏覽器緩存,當確定請求的數(shù)據(jù)不會發(fā)生變化時,能夠直接讀瀏覽器緩存的就不要向服務端發(fā)送請求。比如我們ajax里面有一個參數(shù)能夠設置請求的時候是否啟用緩存,這種情況下就需要我們在發(fā)送請求的時候做好相應的緩存處理。

(3)css文件放 在里面,js文件盡量放在頁面的底部。因為請求js文件是很花費時間,如果放在里面,就會導致頁面的 DOM樹呈現(xiàn)需要等待js文件加載完成。這也就是為什么很多網(wǎng)站的源碼里面看到引用的文件放在最后的原因。

(4)使用壓縮的css和js文件。這個不用多說,網(wǎng)絡流量小。

(5)如果條件允許,盡量使用CDN的方式引用文件,這樣就能減少網(wǎng)絡流量。比如我們常用的網(wǎng)站http://www.bootcdn.cn/。

(6)在寫js和css的語法時,盡量避免重復的css,盡量減少js里面循環(huán)的次數(shù),諸如此類。

2、后端優(yōu)化:

(1)程序的優(yōu)化:這是一個很大的話題,我這里就選幾個常見的。比如減少代碼的層級結構、避免循環(huán)嵌套、避免循環(huán)CURD數(shù)據(jù)庫、優(yōu)化算法等等。

(2)數(shù)據(jù)庫的優(yōu)化:(由于數(shù)據(jù)庫優(yōu)化不是本題重點,所以可選幾個主要的來說)比如啟用數(shù)據(jù)庫緩存、常用的字段建索引、盡量避免大事務操作、避免select * 的寫法、盡量不用in和not in 這種耗性能的用法等等。

(3)服務器優(yōu)化:(這個可作為可選項)負載均衡、Web服務器和數(shù)據(jù)庫分離、UI和Service分離等等。

二、MVC路由理解?(屢見不鮮)

出現(xiàn)指數(shù):五顆星

主要考點:此題主要考點是MVC路由的理解。

參考答案:

1、首先我們要理解MVC中路由的作用:url Routing的作用是將瀏覽器的URL請求映射到特定的MVC控制器動作。

2、當我們訪問http://localhost:8080/Home/Index 這個地址的時候,請求首先被UrlRoutingModule截獲,截獲請求后,從Routes中得到與當前請求URL相符合的RouteData對象, 將RouteData對象和當前URL封裝成一個RequestContext對象,然后從Requestcontext封裝的RouteData中得到 Controller名字,根據(jù)Controller的名字,通過反射創(chuàng)建控制器對象,這個時候控制器才真正被激活,最后去執(zhí)行控制器里面對應的 action。

三、談談你覺得做的不錯系統(tǒng),大概介紹下用到了哪些技術?

出現(xiàn)指數(shù):五顆星

主要考點:這是一道非常開放的面試題。博主遇到過好幾家公司的面試官都問道了這個,博主覺得他們是想通過這個問題快速了解面試者的技術水平。此題只要結合你最近項目用到的技術談談就好了。

參考答案:

就拿我之前做過的一個項目為例來簡單說明一下吧。項目分為客戶端和服務端,客戶端分 為BS客戶端和CS客戶端,BS客戶端采用MVC 5.0的框架,CS客戶端是Winform項目,服務端使用WebApi統(tǒng)一提供服務接口,考慮以后可能還要擴展手機端,所以服務接口的參數(shù)和返回值使用 通用的Json格式來傳遞數(shù)據(jù)。

1、服務端采用的面向接口編程,我們在軟件架構的過程中,層和層之間通過接口依賴, 下層不是直接給上層提供實現(xiàn),而是提供接口,具體的實現(xiàn)以依賴注入的方式在運行的時候動態(tài)注入進去。MEF就是實現(xiàn)依賴注入的一種組件。它的使用使得UI 層不直接依賴于BLL層,而是依賴于中間的一個IBLL層,在程序運行的時候,通過MEF動態(tài)將BLL里面的實現(xiàn)注入到UI層里面去,這樣做的好處是減少 了層與層之間的耦合。服務端的異常里面、權限驗證、日志記錄等通用功能使用了AOP攔截的機制統(tǒng)一管理,項目中使用的是Postsharp這個組件,很好 地將通用需求功能從不相關的類當中分離出來,提高了代碼的可維護性。

2、BS的客戶端采用的jquery+bootstrap 的方式,所有頁面采用流式布局,能更好適應各種不同的終端設備(PC、手機)。項目中使用了各種功能強大的bootstrap組件,能適應各種復雜的業(yè)務需求。

四、Js繼承實現(xiàn)。

出現(xiàn)指數(shù):五顆星

主要考點:這道題考驗面試者對js理解的深度。根據(jù)博主的經(jīng)歷,這種題一般在筆試出現(xiàn)的幾率較大,為什么把它放在這里,因為它確實太常見了。其實js實現(xiàn)繼承的方式很多,我們只要寫好其中一種就好了。

參考答案:原型鏈繼承

  
 
  1. function Person(name, age){ 
  2.     this.name = name; 
  3.     this.age = age; 
  4. }    
  5. //通過原型鏈給Person添加一個方法 
  6. Person.prototype.getInfo = function(){ 
  7.     console.log(this.name + " is " + this.age + " years old!"); } function Teacher(staffId){ this.staffId = staffId; } //通過prototype生命Teacher繼承Person Teacher.prototype = new Person(); var will = new Teacher(1000); will.name = "Will"; will.age = 28; 
  8. will.getInfo(); 

五、談談你對設計模式的認識?結合你用得最多的一種設計模式說說它的使用。

出現(xiàn)指數(shù):五顆星

主要考點:不用多說,這題考的就是對設計模式的理解。一般為了簡單可能會要求你寫一個單例模式,注意最好是寫一個完整點的,考慮線程安全的那種。然后會讓你說說你在項目中什么情況下會用到這種模式

參考答案:

通用寫法

  
 
  1. public class Singleton 
  2.  { 
  3.      // 定義一個靜態(tài)變量來保存類的實例 
  4.      private static Singleton uniqueInstance; 
  5.  
  6.      // 定義一個標識確保線程同步 
  7.      private static readonly object locker = new object(); 
  8.  
  9.      // 定義私有構造函數(shù),使外界不能創(chuàng)建該類實例 
  10.      private Singleton() 
  11.      { 
  12.      } 
  13.  
  14.      ///  
  15.      /// 定義公有方法提供一個全局訪問點,同時你也可以定義公有屬性來提供全局訪問點 
  16.      ///  
  17.      ///  
  18.      public static Singleton GetInstance() 
  19.      {// 雙重鎖定只需要一句判斷就可以了 
  20.          if (uniqueInstance == null) 
  21.          { 
  22.              lock (locker) 
  23.              { 
  24.                  // 如果類的實例不存在則創(chuàng)建,否則直接返回 
  25.                  if (uniqueInstance == null) 
  26.                  { 
  27.                      uniqueInstance = new Singleton(); 
  28.                  } 
  29.              } 
  30.          } 
  31.          return uniqueInstance; 
  32.      } 
  33.  } 

單例模式確保一個類只有一個實例,并提供一個全局訪問點,它的使用場景比如任務管理 器整個系統(tǒng)中應該只有一個把,再比如操作文件的對象,同一時間我們只能有一個對象去操作文件吧。最重要的,比如我們項目中用得非常多的功能→日志記錄,在 一個線程中,記錄日志的對象應該也只能有一個吧。單例模式的目的是為了保證程序的安全性和數(shù)據(jù)的唯一性。或者你也可以結合你使用的其他設計模式來說明。

六、IIS的工作原理?

出現(xiàn)指數(shù):四顆星

主要考點:此題主要考的是.net framework和IIS是如何結合呈現(xiàn)頁面的。這是一個有點復雜的過程,面試的時候不可能說得完整,那么我們就抓住幾個關鍵點說說就可以。其實博主也不能完全理解這個過程,今天正好借這個機會溫習下。

參考答案:

1、當客戶端發(fā)送HTTP Request時,服務端的HTTP.sys(可以理解為IIS的一個監(jiān)聽組件) 攔截到這個請求;

2、HTTP.sys 聯(lián)系 WAS 向配置存儲中心請求配置信息。

3、然后將請求傳入IIS的應用程序池。

4、檢查請求的后綴,啟動aspnet_isapi.dll這個dll,這個dll是.net framework里面的,也就是說到這一步,請求進入了.net framework的管轄范圍。

5、這個時候如果是WebForm,開始執(zhí)行復雜的頁面生命周期(HttpRuntime→ProcessRequest→HttpContext→HttpHandler);如果是MVC,則啟動mvc的路由機制,根據(jù)路由規(guī)則為URL來指定HttpHandler。

6、httpHandler處理請求后,請求結束,給出Response,客戶端處理響應,整個過程結束。

七、Http協(xié)議

出現(xiàn)指數(shù):四顆星

主要考點:此題主要考對于web里面http協(xié)議的理解。

參考答案:

1、http協(xié)議是瀏覽器和服務器雙方共同遵循的規(guī)范,是一種基于TCP/IP應用層協(xié)議。

2、http是一種典型的請求/響應協(xié)議??蛻舳税l(fā)送請求,請求的內(nèi)容以及參數(shù)存放到請求報文里面,服務端收到請求后,做出響應,返回響應的結果放到響應報文里面。通過F12可以查看請求報文和響應報文。

3、http協(xié)議是”無狀態(tài)”的,當客戶端向服務端發(fā)送一次http請求后,服務端收到請求然后返回給客戶端相應的結果,服務器會立即斷開連接并釋放資源。在實際開發(fā)過程中,我們有時需要“保持”這種狀態(tài),所以衍生出了Session/Cookie這些技術。

4、http請求的方式主要有get/post。

5、http狀態(tài)碼最好記幾個,博主有一次面試就被問到了。200(請求成功)、404(請求的資源不存在)、403(禁止訪問)、5xx(服務端錯誤)

八、數(shù)據(jù)庫優(yōu)化經(jīng)驗(后端工程師非常常見)

出現(xiàn)指數(shù):四顆星

主要考點:此題考察后端工程師操作數(shù)據(jù)庫的經(jīng)驗。說實話,數(shù)據(jù)庫是博主的弱項,博主覺得對于這種考題,需要抓住幾個常用并且關鍵的優(yōu)化經(jīng)驗,如果說得不對,歡迎大家斧正。

參考答案:

1、數(shù)據(jù)庫運維方面的優(yōu)化:啟用數(shù)據(jù)庫緩存。對于一些比較常用的查詢可以采用數(shù)據(jù)庫緩存的機制,部署的時候需要注意設置好緩存依賴項,防止“過期”數(shù)據(jù)的產(chǎn)生。

2、數(shù)據(jù)庫索引方面的優(yōu)化:比如常用的字段建索引,聯(lián)合查詢考慮聯(lián)合索引。(PS:如果你有基礎,可以敞開談談聚集索引和非聚集索引的使用場景和區(qū)別)

3、數(shù)據(jù)庫查詢方面的優(yōu)化:避免select * 的寫法、盡量不用in和not in 這種耗性能的用法等等。

4、數(shù)據(jù)庫算法方面的優(yōu)化:盡量避免大事務操作、減少循環(huán)算法,對于大數(shù)據(jù)量的操作,避免使用游標的用法等等。

九、關于代碼優(yōu)化你怎么理解?你會考慮去代碼重構嗎?

出現(xiàn)指數(shù):四顆星

主要考點:此題考的是面試者對代碼優(yōu)化的理解,以及代碼如何重構的相關知識。

參考答案:

1、對于代碼優(yōu)化,之前的公司每周會做代碼審核,審核的主要作用就是保證代碼的正確性和執(zhí)行效率,比如減少代碼的層級結構、避免循環(huán)嵌套、避免循環(huán)CURD數(shù)據(jù)庫、盡量避免一次取出大量數(shù)據(jù)放在內(nèi)存中(容易內(nèi)存溢出)、優(yōu)化算法等。

2、對于陳舊代碼,可能很多地方有調(diào)用,并且開發(fā)和維護人員很有可能不是同一個人,所以重構時要格外小心,如果沒有十足的把握,不要輕易重構。如果必須要重構,必須做好充分的單元測試和全局測試。

十、談談你的優(yōu)點和缺點?

出現(xiàn)指數(shù):四顆星

主要考點:這道題讓人有一種罵人的沖動,但是沒辦法,偏偏很多所謂的大公司會問這個。比如華為。這個問題見仁見智,答案可以自己組織。

參考答案:

優(yōu)點:對于新的技術學習能力強,能很快適應新環(huán)境等等

缺點:對技術太過于執(zhí)著等等

十一、關于服務器端 MVC 架構的技術實現(xiàn),您是怎樣理解的?這種架構方式有什么好處?您在項目中是如何應用這一架構的?

出現(xiàn)指數(shù):三顆星

主要考點:此題主要考的對于MVC這種框架的理解。

參考答案:MVC,顧名思義,Model、View、Controller。所有的 界面代碼放在View里面,所有涉及和界面交互以及URL路由相關的邏輯都在Controller里面,Model提供數(shù)據(jù)模型。MVC的架構方式會讓系 統(tǒng)的可維護性更高,使得每一部分更加專注自己的職責,并且MVC提供了強大的路由機制,方便了頁面切換和界面交互。然后可以結合和WebForm的比較, 談談MVC如何解決復雜的控件樹生成、如何避免了復雜的頁面生命周期。

十二、網(wǎng)站優(yōu)化:網(wǎng)站運行慢,如何定位問題?發(fā)現(xiàn)問題如何解決?

出現(xiàn)指數(shù):三顆星

主要考點:此題和問題一類似,考察Web的問題定位能力和優(yōu)化方案。

參考答案:

瀏覽器F12→網(wǎng)絡→查看http請求數(shù)以及每個請求的耗時,找到問題的根源,然后依次解決,解決方案可以參考問題一里面的Web優(yōu)化方案。

十三、說說你最擅長的技術?并說說你是如何使用的?

出現(xiàn)指數(shù):三顆星

主要考點:這是一道非常開放的面試題。最初遇到這種問題,博主很想來一句:你妹,這叫什么問題!但確實有面試官問到?;仡^想想,其實此題考查你擅長的技術的涉及深度。其實博主覺得對于這個問題,可以結合你項目中用到的某一個技術來說就好了。

參考答案:

 簡單談談MEF在我們項目里面的使用吧。

在談MEF之前,我們必須要先談談DIP、IOC、DI

依賴倒置原則(DIP):一種軟件架構設計的原則(抽象概念)

控制反轉(zhuǎn)(IoC):一種反轉(zhuǎn)流、依賴和接口的方式(DIP的具體實現(xiàn)方式)。

依賴注入(DI):IoC的一種實現(xiàn)方式,用來反轉(zhuǎn)依賴(IoC的具體實現(xiàn)方式)。

什么意思呢?也就是說,我們在軟件架構的過程中,層和層之間通過接口依賴,下層不是 直接給上層提供實現(xiàn),而是提供接口,具體的實現(xiàn)以依賴注入的方式在運行的時候動態(tài)注入進去。MEF就是實現(xiàn)依賴注入的一種組件。它的使用使得UI層不直接 依賴于BLL層,而是依賴于中間的一個IBLL層,在程序運行的時候,通過MEF動態(tài)將BLL里面的實現(xiàn)注入到UI層里面去,這樣做的好處是減少了層與層 之間的耦合。這也正是面向接口編程方式的體現(xiàn)。

十四、自己寫過JS組件嗎?舉例說明。

出現(xiàn)指數(shù):三顆星

主要考點:此題考的js組件封裝和js閉包的一些用法。一般來說,還是筆試出現(xiàn)的幾率較大。

參考答案:自定義html的select組件

 
 
  1. //combobox 
  2. (function ($) { 
  3.     $.fn.combobox = function (options, param) { 
  4.         if (typeof options == 'string') { 
  5.             return $.fn.combobox.methods[options](this, param); 
  6.         } 
  7.         options = $.extend({}, $.fn.combobox.defaults, options || {}); 
  8.         var target = $(this); 
  9.         target.attr('valuefield', options.valueField); 
  10.         target.attr('textfield', options.textField); 
  11.         target.empty(); 
  12.         var option = $(''); 
  13.         option.attr('value', ''); 
  14.         option.text(options.placeholder); 
  15.         target.append(option); 
  16.         if (options.data) { 
  17.             init(target, options.data); 
  18.         } 
  19.         else { 
  20.             //var param = {}; 
  21.             options.onBeforeLoad.call(target, option.param); 
  22.             if (!options.url) return; 
  23.             $.getJSON(options.url, option.param, function (data) { 
  24.                 init(target, data); 
  25.             }); 
  26.         } 
  27.         function init(target, data) { 
  28.             $.each(data, function (i, item) { 
  29.                 var option = $(''); 
  30.                 option.attr('value', item[options.valueField]); 
  31.                 option.text(item[options.textField]); 
  32.                 target.append(option); 
  33.             }); 
  34.             options.onLoadSuccess.call(target); 
  35.         } 
  36.         target.unbind("change"); target.on("change", function (e) { if (options.onChange) return options.onChange(target.val()); }); } $.fn.combobox.methods = { getValue: function (jq) { return jq.val(); }, setValue: function (jq, param) { jq.val(param); }, load: function (jq, url) { $.getJSON(url, function (data) { jq.empty(); var option = $(''); option.attr('value', ''); option.text('請選擇'); jq.append(option); $.each(data, function (i, item) { var option = $(''); option.attr('value', item[jq.attr('valuefield')]); option.text(item[jq.attr('textfield')]); jq.append(option); }); }); } }; $.fn.combobox.defaults = { url: null, param: null, data: null, valueField: 'value', textField: 'text', placeholder: '請選擇', onBeforeLoad: function (param) { }, onLoadSuccess: function () { }, onChange: function (value) { } 
  37.     }; 
  38. })(jQuery); 

調(diào)用的時候

  
 
  1. $("#sel_search_orderstatus").combobox({ 
  2.     url: '/apiaction/Order/OrderApi/GetOrderStatu', 
  3.     valueField: 'VALUE', 
  4.     textField: 'NAME' 
  5. }); 

就能自動從后臺取數(shù)據(jù),注意valueField和textField對應要顯示和實際值。

十五、自己寫過多線程組件嗎?簡要說明!

出現(xiàn)指數(shù):三顆星

主要考點:此題是兩年前博主在攜程的一次電話面試中遇到的,其他地方基本上沒遇到過,其實到現(xiàn)在也不能理解當時面試官問這個問題的目的。但我想,此問題必有出處,估計面試官是想了解你對多線程以及線程池等的理解深度。

參考答案:可以參考http://www.cnblogs.com/Alexander-Lee/archive/2009/10/31/1593647.html

以上就是博主根據(jù)自己的理解做的一些總結,如果有不對的地方,歡迎指出。當然,如果園友們覺得還有哪些沒涉及到但是出現(xiàn)頻率非常高的面試題,歡迎提出,大家一起討論,一起進步。如果文章或多或少能夠幫到你,請幫忙推薦吧,千萬不要客氣~~

 


網(wǎng)站題目:面試干貨——年底干貨大放送,你準備好了嗎?
標題鏈接:http://www.dlmjj.cn/article/cdhhope.html