面試干貨——年底干貨大放送,你準(zhǔn)備好了嗎?
對(duì)于一些基礎(chǔ)的筆試和簡(jiǎn)單的面試題,博主就不照本宣科了。本篇就結(jié)合博主遇到以及網(wǎng)上經(jīng)??吹降囊恍┟嬖囶}做一個(gè)總結(jié)。PS:由于博主用的主要編程語(yǔ)言是C#,所以本篇主要介紹關(guān)于.net面試中的常見(jiàn)問(wèn)題。
一、對(duì)于 Web 性能優(yōu)化,您有哪些了解和經(jīng)驗(yàn)嗎?
出現(xiàn)指數(shù):五顆星
主要考點(diǎn):這道題是博主在博客園的新聞里面看到的,回想之前幾年的面試經(jīng)歷,發(fā)現(xiàn)此題出現(xiàn)概率還是比較高的。因?yàn)樗目济婊页V,可以讓面試官很快了解你的技術(shù)涉及面以及這些技術(shù)面的深度。
參考答案:這個(gè)問(wèn)題可以分前端和后端來(lái)說(shuō)。
1、前端優(yōu)化
(1)減少 HTTP 請(qǐng)求的次數(shù)。我們知道每次發(fā)送http請(qǐng)求,建立連接和等待相應(yīng)會(huì)花去相當(dāng)一部分時(shí)間,所以在發(fā)送http請(qǐng)求的時(shí)候,盡量減少請(qǐng)求的次數(shù),一次請(qǐng)求能取出的數(shù)據(jù)就不要分多次發(fā)送。
(2)啟用瀏覽器緩存,當(dāng)確定請(qǐng)求的數(shù)據(jù)不會(huì)發(fā)生變化時(shí),能夠直接讀瀏覽器緩存的就不要向服務(wù)端發(fā)送請(qǐng)求。比如我們ajax里面有一個(gè)參數(shù)能夠設(shè)置請(qǐng)求的時(shí)候是否啟用緩存,這種情況下就需要我們?cè)诎l(fā)送請(qǐng)求的時(shí)候做好相應(yīng)的緩存處理。
(3)css文件放 在<head>里面,js文件盡量放在頁(yè)面的底部。因?yàn)檎?qǐng)求js文件是很花費(fèi)時(shí)間,如果放在<head>里面,就會(huì)導(dǎo)致頁(yè)面的 DOM樹(shù)呈現(xiàn)需要等待js文件加載完成。這也就是為什么很多網(wǎng)站的源碼里面看到引用的文件放在最后的原因。
(4)使用壓縮的css和js文件。這個(gè)不用多說(shuō),網(wǎng)絡(luò)流量小。
(5)如果條件允許,盡量使用CDN的方式引用文件,這樣就能減少網(wǎng)絡(luò)流量。比如我們常用的網(wǎng)站http://www.bootcdn.cn/。
(6)在寫(xiě)js和css的語(yǔ)法時(shí),盡量避免重復(fù)的css,盡量減少js里面循環(huán)的次數(shù),諸如此類(lèi)。
2、后端優(yōu)化:
(1)程序的優(yōu)化:這是一個(gè)很大的話題,我這里就選幾個(gè)常見(jiàn)的。比如減少代碼的層級(jí)結(jié)構(gòu)、避免循環(huán)嵌套、避免循環(huán)CURD數(shù)據(jù)庫(kù)、優(yōu)化算法等等。
(2)數(shù)據(jù)庫(kù)的優(yōu)化:(由于數(shù)據(jù)庫(kù)優(yōu)化不是本題重點(diǎn),所以可選幾個(gè)主要的來(lái)說(shuō))比如啟用數(shù)據(jù)庫(kù)緩存、常用的字段建索引、盡量避免大事務(wù)操作、避免select * 的寫(xiě)法、盡量不用in和not in 這種耗性能的用法等等。
(3)服務(wù)器優(yōu)化:(這個(gè)可作為可選項(xiàng))負(fù)載均衡、Web服務(wù)器和數(shù)據(jù)庫(kù)分離、UI和Service分離等等。
二、MVC路由理解?(屢見(jiàn)不鮮)
出現(xiàn)指數(shù):五顆星
主要考點(diǎn):此題主要考點(diǎn)是MVC路由的理解。
參考答案:
1、首先我們要理解MVC中路由的作用:url Routing的作用是將瀏覽器的URL請(qǐng)求映射到特定的MVC控制器動(dòng)作。
2、當(dāng)我們?cè)L問(wèn)http://localhost:8080/Home/Index 這個(gè)地址的時(shí)候,請(qǐng)求首先被UrlRoutingModule截獲,截獲請(qǐng)求后,從Routes中得到與當(dāng)前請(qǐng)求URL相符合的RouteData對(duì)象, 將RouteData對(duì)象和當(dāng)前URL封裝成一個(gè)RequestContext對(duì)象,然后從Requestcontext封裝的RouteData中得到 Controller名字,根據(jù)Controller的名字,通過(guò)反射創(chuàng)建控制器對(duì)象,這個(gè)時(shí)候控制器才真正被激活,最后去執(zhí)行控制器里面對(duì)應(yīng)的 action。
三、談?wù)勀阌X(jué)得做的不錯(cuò)系統(tǒng),大概介紹下用到了哪些技術(shù)?
出現(xiàn)指數(shù):五顆星
主要考點(diǎn):這是一道非常開(kāi)放的面試題。博主遇到過(guò)好幾家公司的面試官都問(wèn)道了這個(gè),博主覺(jué)得他們是想通過(guò)這個(gè)問(wèn)題快速了解面試者的技術(shù)水平。此題只要結(jié)合你最近項(xiàng)目用到的技術(shù)談?wù)劸秃昧恕?/p>
參考答案:
就拿我之前做過(guò)的一個(gè)項(xiàng)目為例來(lái)簡(jiǎn)單說(shuō)明一下吧。項(xiàng)目分為客戶端和服務(wù)端,客戶端分 為BS客戶端和CS客戶端,BS客戶端采用MVC 5.0的框架,CS客戶端是Winform項(xiàng)目,服務(wù)端使用WebApi統(tǒng)一提供服務(wù)接口,考慮以后可能還要擴(kuò)展手機(jī)端,所以服務(wù)接口的參數(shù)和返回值使用 通用的Json格式來(lái)傳遞數(shù)據(jù)。
1、服務(wù)端采用的面向接口編程,我們?cè)谲浖軜?gòu)的過(guò)程中,層和層之間通過(guò)接口依賴(lài), 下層不是直接給上層提供實(shí)現(xiàn),而是提供接口,具體的實(shí)現(xiàn)以依賴(lài)注入的方式在運(yùn)行的時(shí)候動(dòng)態(tài)注入進(jìn)去。MEF就是實(shí)現(xiàn)依賴(lài)注入的一種組件。它的使用使得UI 層不直接依賴(lài)于BLL層,而是依賴(lài)于中間的一個(gè)IBLL層,在程序運(yùn)行的時(shí)候,通過(guò)MEF動(dòng)態(tài)將BLL里面的實(shí)現(xiàn)注入到UI層里面去,這樣做的好處是減少 了層與層之間的耦合。服務(wù)端的異常里面、權(quán)限驗(yàn)證、日志記錄等通用功能使用了AOP攔截的機(jī)制統(tǒng)一管理,項(xiàng)目中使用的是Postsharp這個(gè)組件,很好 地將通用需求功能從不相關(guān)的類(lèi)當(dāng)中分離出來(lái),提高了代碼的可維護(hù)性。
2、BS的客戶端采用的jquery+bootstrap 的方式,所有頁(yè)面采用流式布局,能更好適應(yīng)各種不同的終端設(shè)備(PC、手機(jī))。項(xiàng)目中使用了各種功能強(qiáng)大的bootstrap組件,能適應(yīng)各種復(fù)雜的業(yè)務(wù)需求。
四、Js繼承實(shí)現(xiàn)。
出現(xiàn)指數(shù):五顆星
主要考點(diǎn):這道題考驗(yàn)面試者對(duì)js理解的深度。根據(jù)博主的經(jīng)歷,這種題一般在筆試出現(xiàn)的幾率較大,為什么把它放在這里,因?yàn)樗_實(shí)太常見(jiàn)了。其實(shí)js實(shí)現(xiàn)繼承的方式很多,我們只要寫(xiě)好其中一種就好了。
參考答案:原型鏈繼承
- function Person(name, age){
- this.name = name;
- this.age = age;
- }
- //通過(guò)原型鏈給Person添加一個(gè)方法
- Person.prototype.getInfo = function(){
- console.log(this.name + " is " + this.age + " years old!"); } function Teacher(staffId){ this.staffId = staffId; } //通過(guò)prototype生命Teacher繼承Person Teacher.prototype = new Person(); var will = new Teacher(1000); will.name = "Will"; will.age = 28;
- will.getInfo();
五、談?wù)勀銓?duì)設(shè)計(jì)模式的認(rèn)識(shí)?結(jié)合你用得最多的一種設(shè)計(jì)模式說(shuō)說(shuō)它的使用。
出現(xiàn)指數(shù):五顆星
主要考點(diǎn):不用多說(shuō),這題考的就是對(duì)設(shè)計(jì)模式的理解。一般為了簡(jiǎn)單可能會(huì)要求你寫(xiě)一個(gè)單例模式,注意最好是寫(xiě)一個(gè)完整點(diǎn)的,考慮線程安全的那種。然后會(huì)讓你說(shuō)說(shuō)你在項(xiàng)目中什么情況下會(huì)用到這種模式
參考答案:
通用寫(xiě)法
- public class Singleton
- {
- // 定義一個(gè)靜態(tài)變量來(lái)保存類(lèi)的實(shí)例
- private static Singleton uniqueInstance;
- // 定義一個(gè)標(biāo)識(shí)確保線程同步
- private static readonly object locker = new object();
- // 定義私有構(gòu)造函數(shù),使外界不能創(chuàng)建該類(lèi)實(shí)例
- private Singleton()
- {
- }
- /// <summary>
- /// 定義公有方法提供一個(gè)全局訪問(wèn)點(diǎn),同時(shí)你也可以定義公有屬性來(lái)提供全局訪問(wèn)點(diǎn)
- /// </summary>
- /// <returns></returns>
- public static Singleton GetInstance()
- {// 雙重鎖定只需要一句判斷就可以了
- if (uniqueInstance == null)
- {
- lock (locker)
- {
- // 如果類(lèi)的實(shí)例不存在則創(chuàng)建,否則直接返回
- if (uniqueInstance == null)
- {
- uniqueInstance = new Singleton();
- }
- }
- }
- return uniqueInstance;
- }
- }
單例模式確保一個(gè)類(lèi)只有一個(gè)實(shí)例,并提供一個(gè)全局訪問(wèn)點(diǎn),它的使用場(chǎng)景比如任務(wù)管理 器整個(gè)系統(tǒng)中應(yīng)該只有一個(gè)把,再比如操作文件的對(duì)象,同一時(shí)間我們只能有一個(gè)對(duì)象去操作文件吧。最重要的,比如我們項(xiàng)目中用得非常多的功能→日志記錄,在 一個(gè)線程中,記錄日志的對(duì)象應(yīng)該也只能有一個(gè)吧。單例模式的目的是為了保證程序的安全性和數(shù)據(jù)的唯一性。或者你也可以結(jié)合你使用的其他設(shè)計(jì)模式來(lái)說(shuō)明。
六、IIS的工作原理?
出現(xiàn)指數(shù):四顆星
主要考點(diǎn):此題主要考的是.net framework和IIS是如何結(jié)合呈現(xiàn)頁(yè)面的。這是一個(gè)有點(diǎn)復(fù)雜的過(guò)程,面試的時(shí)候不可能說(shuō)得完整,那么我們就抓住幾個(gè)關(guān)鍵點(diǎn)說(shuō)說(shuō)就可以。其實(shí)博主也不能完全理解這個(gè)過(guò)程,今天正好借這個(gè)機(jī)會(huì)溫習(xí)下。
參考答案:
1、當(dāng)客戶端發(fā)送HTTP Request時(shí),服務(wù)端的HTTP.sys(可以理解為IIS的一個(gè)監(jiān)聽(tīng)組件) 攔截到這個(gè)請(qǐng)求;
2、HTTP.sys 聯(lián)系 WAS 向配置存儲(chǔ)中心請(qǐng)求配置信息。
3、然后將請(qǐng)求傳入IIS的應(yīng)用程序池。
4、檢查請(qǐng)求的后綴,啟動(dòng)aspnet_isapi.dll這個(gè)dll,這個(gè)dll是.net framework里面的,也就是說(shuō)到這一步,請(qǐng)求進(jìn)入了.net framework的管轄范圍。
5、這個(gè)時(shí)候如果是WebForm,開(kāi)始執(zhí)行復(fù)雜的頁(yè)面生命周期(HttpRuntime→ProcessRequest→HttpContext→HttpHandler);如果是MVC,則啟動(dòng)mvc的路由機(jī)制,根據(jù)路由規(guī)則為URL來(lái)指定HttpHandler。
6、httpHandler處理請(qǐng)求后,請(qǐng)求結(jié)束,給出Response,客戶端處理響應(yīng),整個(gè)過(guò)程結(jié)束。
七、Http協(xié)議
出現(xiàn)指數(shù):四顆星
主要考點(diǎn):此題主要考對(duì)于web里面http協(xié)議的理解。
參考答案:
1、http協(xié)議是瀏覽器和服務(wù)器雙方共同遵循的規(guī)范,是一種基于TCP/IP應(yīng)用層協(xié)議。
2、http是一種典型的請(qǐng)求/響應(yīng)協(xié)議??蛻舳税l(fā)送請(qǐng)求,請(qǐng)求的內(nèi)容以及參數(shù)存放到請(qǐng)求報(bào)文里面,服務(wù)端收到請(qǐng)求后,做出響應(yīng),返回響應(yīng)的結(jié)果放到響應(yīng)報(bào)文里面。通過(guò)F12可以查看請(qǐng)求報(bào)文和響應(yīng)報(bào)文。
3、http協(xié)議是”無(wú)狀態(tài)”的,當(dāng)客戶端向服務(wù)端發(fā)送一次http請(qǐng)求后,服務(wù)端收到請(qǐng)求然后返回給客戶端相應(yīng)的結(jié)果,服務(wù)器會(huì)立即斷開(kāi)連接并釋放資源。在實(shí)際開(kāi)發(fā)過(guò)程中,我們有時(shí)需要“保持”這種狀態(tài),所以衍生出了Session/Cookie這些技術(shù)。
4、http請(qǐng)求的方式主要有g(shù)et/post。
5、http狀態(tài)碼最好記幾個(gè),博主有一次面試就被問(wèn)到了。200(請(qǐng)求成功)、404(請(qǐng)求的資源不存在)、403(禁止訪問(wèn))、5xx(服務(wù)端錯(cuò)誤)
八、數(shù)據(jù)庫(kù)優(yōu)化經(jīng)驗(yàn)(后端工程師非常常見(jiàn))
出現(xiàn)指數(shù):四顆星
主要考點(diǎn):此題考察后端工程師操作數(shù)據(jù)庫(kù)的經(jīng)驗(yàn)。說(shuō)實(shí)話,數(shù)據(jù)庫(kù)是博主的弱項(xiàng),博主覺(jué)得對(duì)于這種考題,需要抓住幾個(gè)常用并且關(guān)鍵的優(yōu)化經(jīng)驗(yàn),如果說(shuō)得不對(duì),歡迎大家斧正。
參考答案:
1、數(shù)據(jù)庫(kù)運(yùn)維方面的優(yōu)化:?jiǎn)⒂脭?shù)據(jù)庫(kù)緩存。對(duì)于一些比較常用的查詢(xún)可以采用數(shù)據(jù)庫(kù)緩存的機(jī)制,部署的時(shí)候需要注意設(shè)置好緩存依賴(lài)項(xiàng),防止“過(guò)期”數(shù)據(jù)的產(chǎn)生。
2、數(shù)據(jù)庫(kù)索引方面的優(yōu)化:比如常用的字段建索引,聯(lián)合查詢(xún)考慮聯(lián)合索引。(PS:如果你有基礎(chǔ),可以敞開(kāi)談?wù)劸奂饕头蔷奂饕氖褂脠?chǎng)景和區(qū)別)
3、數(shù)據(jù)庫(kù)查詢(xún)方面的優(yōu)化:避免select * 的寫(xiě)法、盡量不用in和not in 這種耗性能的用法等等。
4、數(shù)據(jù)庫(kù)算法方面的優(yōu)化:盡量避免大事務(wù)操作、減少循環(huán)算法,對(duì)于大數(shù)據(jù)量的操作,避免使用游標(biāo)的用法等等。
九、關(guān)于代碼優(yōu)化你怎么理解?你會(huì)考慮去代碼重構(gòu)嗎?
出現(xiàn)指數(shù):四顆星
主要考點(diǎn):此題考的是面試者對(duì)代碼優(yōu)化的理解,以及代碼如何重構(gòu)的相關(guān)知識(shí)。
參考答案:
1、對(duì)于代碼優(yōu)化,之前的公司每周會(huì)做代碼審核,審核的主要作用就是保證代碼的正確性和執(zhí)行效率,比如減少代碼的層級(jí)結(jié)構(gòu)、避免循環(huán)嵌套、避免循環(huán)CURD數(shù)據(jù)庫(kù)、盡量避免一次取出大量數(shù)據(jù)放在內(nèi)存中(容易內(nèi)存溢出)、優(yōu)化算法等。
2、對(duì)于陳舊代碼,可能很多地方有調(diào)用,并且開(kāi)發(fā)和維護(hù)人員很有可能不是同一個(gè)人,所以重構(gòu)時(shí)要格外小心,如果沒(méi)有十足的把握,不要輕易重構(gòu)。如果必須要重構(gòu),必須做好充分的單元測(cè)試和全局測(cè)試。
十、談?wù)勀愕膬?yōu)點(diǎn)和缺點(diǎn)?
出現(xiàn)指數(shù):四顆星
主要考點(diǎn):這道題讓人有一種罵人的沖動(dòng),但是沒(méi)辦法,偏偏很多所謂的大公司會(huì)問(wèn)這個(gè)。比如華為。這個(gè)問(wèn)題見(jiàn)仁見(jiàn)智,答案可以自己組織。
參考答案:
優(yōu)點(diǎn):對(duì)于新的技術(shù)學(xué)習(xí)能力強(qiáng),能很快適應(yīng)新環(huán)境等等
缺點(diǎn):對(duì)技術(shù)太過(guò)于執(zhí)著等等
十一、關(guān)于服務(wù)器端 MVC 架構(gòu)的技術(shù)實(shí)現(xiàn),您是怎樣理解的?這種架構(gòu)方式有什么好處?您在項(xiàng)目中是如何應(yīng)用這一架構(gòu)的?
出現(xiàn)指數(shù):三顆星
主要考點(diǎn):此題主要考的對(duì)于MVC這種框架的理解。
參考答案:MVC,顧名思義,Model、View、Controller。所有的 界面代碼放在View里面,所有涉及和界面交互以及URL路由相關(guān)的邏輯都在Controller里面,Model提供數(shù)據(jù)模型。MVC的架構(gòu)方式會(huì)讓系 統(tǒng)的可維護(hù)性更高,使得每一部分更加專(zhuān)注自己的職責(zé),并且MVC提供了強(qiáng)大的路由機(jī)制,方便了頁(yè)面切換和界面交互。然后可以結(jié)合和WebForm的比較, 談?wù)凪VC如何解決復(fù)雜的控件樹(shù)生成、如何避免了復(fù)雜的頁(yè)面生命周期。
十二、網(wǎng)站優(yōu)化:網(wǎng)站運(yùn)行慢,如何定位問(wèn)題?發(fā)現(xiàn)問(wèn)題如何解決?
出現(xiàn)指數(shù):三顆星
主要考點(diǎn):此題和問(wèn)題一類(lèi)似,考察Web的問(wèn)題定位能力和優(yōu)化方案。
參考答案:
瀏覽器F12→網(wǎng)絡(luò)→查看http請(qǐng)求數(shù)以及每個(gè)請(qǐng)求的耗時(shí),找到問(wèn)題的根源,然后依次解決,解決方案可以參考問(wèn)題一里面的Web優(yōu)化方案。
十三、說(shuō)說(shuō)你最擅長(zhǎng)的技術(shù)?并說(shuō)說(shuō)你是如何使用的?
出現(xiàn)指數(shù):三顆星
主要考點(diǎn):這是一道非常開(kāi)放的面試題。最初遇到這種問(wèn)題,博主很想來(lái)一句:你妹,這叫什么問(wèn)題!但確實(shí)有面試官問(wèn)到?;仡^想想,其實(shí)此題考查你擅長(zhǎng)的技術(shù)的涉及深度。其實(shí)博主覺(jué)得對(duì)于這個(gè)問(wèn)題,可以結(jié)合你項(xiàng)目中用到的某一個(gè)技術(shù)來(lái)說(shuō)就好了。
參考答案:
簡(jiǎn)單談?wù)凪EF在我們項(xiàng)目里面的使用吧。
在談MEF之前,我們必須要先談?wù)凞IP、IOC、DI
依賴(lài)倒置原則(DIP):一種軟件架構(gòu)設(shè)計(jì)的原則(抽象概念)
控制反轉(zhuǎn)(IoC):一種反轉(zhuǎn)流、依賴(lài)和接口的方式(DIP的具體實(shí)現(xiàn)方式)。
依賴(lài)注入(DI):IoC的一種實(shí)現(xiàn)方式,用來(lái)反轉(zhuǎn)依賴(lài)(IoC的具體實(shí)現(xiàn)方式)。
什么意思呢?也就是說(shuō),我們?cè)谲浖軜?gòu)的過(guò)程中,層和層之間通過(guò)接口依賴(lài),下層不是 直接給上層提供實(shí)現(xiàn),而是提供接口,具體的實(shí)現(xiàn)以依賴(lài)注入的方式在運(yùn)行的時(shí)候動(dòng)態(tài)注入進(jìn)去。MEF就是實(shí)現(xiàn)依賴(lài)注入的一種組件。它的使用使得UI層不直接 依賴(lài)于BLL層,而是依賴(lài)于中間的一個(gè)IBLL層,在程序運(yùn)行的時(shí)候,通過(guò)MEF動(dòng)態(tài)將BLL里面的實(shí)現(xiàn)注入到UI層里面去,這樣做的好處是減少了層與層 之間的耦合。這也正是面向接口編程方式的體現(xiàn)。
十四、自己寫(xiě)過(guò)JS組件嗎?舉例說(shuō)明。
出現(xiàn)指數(shù):三顆星
主要考點(diǎn):此題考的js組件封裝和js閉包的一些用法。一般來(lái)說(shuō),還是筆試出現(xiàn)的幾率較大。
參考答案:自定義html的select組件
- //combobox
- (function ($) {
- $.fn.combobox = function (options, param) {
- if (typeof options == 'string') {
- return $.fn.combobox.methods[options](this, param);
- }
- options = $.extend({}, $.fn.combobox.defaults, options || {});
- var target = $(this);
- target.attr('valuefield', options.valueField);
- target.attr('textfield', options.textField);
- target.empty();
- var option = $('<option></option>');
- option.attr('value', '');
- option.text(options.placeholder);
- target.append(option);
- if (options.data) {
- init(target, options.data);
- }
- else {
- //var param = {};
- options.onBeforeLoad.call(target, option.param);
- if (!options.url) return;
- $.getJSON(options.url, option.param, function (data) {
- init(target, data);
- });
- }
- function init(target, data) {
- $.each(data, function (i, item) {
- var option = $('<option></option>');
- option.attr('value', item[options.valueField]);
- option.text(item[options.textField]);
- target.append(option);
- });
- options.onLoadSuccess.call(target);
- }
- 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></option>'); option.attr('value', ''); option.text('請(qǐng)選擇'); jq.append(option); $.each(data, function (i, item) { var option = $('<option></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: '請(qǐng)選擇', onBeforeLoad: function (param) { }, onLoadSuccess: function () { }, onChange: function (value) { }
- };
- })(jQuery);
- $("#sel_search_orderstatus").combobox({
- url: '/apiaction/Order/OrderApi/GetOrderStatu',
- valueField: 'VALUE',
- textField: 'NAME'
- });
就能自動(dòng)從后臺(tái)取數(shù)據(jù),注意valueField和textField對(duì)應(yīng)要顯示和實(shí)際值。
十五、自己寫(xiě)過(guò)多線程組件嗎?簡(jiǎn)要說(shuō)明!
出現(xiàn)指數(shù):三顆星
主要考點(diǎn):此題是兩年前博主在攜程的一次電話面試中遇到的,其他地方基本上沒(méi)遇到過(guò),其實(shí)到現(xiàn)在也不能理解當(dāng)時(shí)面試官問(wèn)這個(gè)問(wèn)題的目的。但我想,此問(wèn)題必有出處,估計(jì)面試官是想了解你對(duì)多線程以及線程池等的理解深度。
參考答案:可以參考http://www.cnblogs.com/Alexander-Lee/archive/2009/10/31/1593647.html
以上就是博主根據(jù)自己的理解做的一些總結(jié),如果有不對(duì)的地方,歡迎指出。當(dāng)然,如果園友們覺(jué)得還有哪些沒(méi)涉及到但是出現(xiàn)頻率非常高的面試題,歡迎提出,大家一起討論,一起進(jìn)步。如果文章或多或少能夠幫到你,請(qǐng)幫忙推薦吧,千萬(wàn)不要客氣~~