導航:首頁 > 面試求職 > angular面試

angular面試

發布時間:2021-02-18 01:42:41

Ⅰ angular和react面試中經常問到的問題有哪些

路人借問遙招手,怕得魚驚不應人.

Ⅱ 如何面試前端工程師

如何面試前端工程師
前端工程師不一定需要懂設計方面。倘若有這等要求,前端工程師豈不是一項除其本身特徵性工作外還包含用戶界面設計、視覺設計、業務邏輯及交互動畫設計師等工作的職稱了么!

前端工程師,主要工作內容與用戶界面的表現緊密聯系,但均為在圖形上或以其為基礎通過某種實現方式去正確、准確呈現什麼。之所以以「主要工作」修飾,是因為 node.js / io.js 的出現與發展致使前端被引入伺服器端性質的工作內容。

在能力方面:

對 HTML / CSS / JavaScript 具有專家級別的知識;

有較熟練使用 AngularJS / Ember.js / jQuery 或者其它類庫的經驗;

較熟悉第三方組件(插件)生態環境及具體案例;
有較熟練使用 Jade / Swig / Handlebars / Mustache 或者其它模板引擎的經驗;

有較熟練使用 SASS 或者其它 CSS 預處理器的經驗;

有較熟練使用 CoffeeScript 的經驗;

對 CSS / JavaScript 設計模式有很好的認識及應用;

對常用數據結構和演算法熟悉;

有使用 GruntJS / GulpJS 任務運行器的經驗;

有使用 Yeoman 生成器的經驗;
有諸如 Bower / Volo / JSPM 等前端靜態資源包管理器使用經驗;
熟悉本地及遠程(真機)調試操作;
有 Git 的使用經驗;

意識驅動行為,所以:

有自己的技術信仰;

有渴望嘗試新技術的強烈願景及較強的主

然後再為自己從長遠打算及加分:

有 NodeJS Web / 伺服器 / 客戶端應用程序設計、開發、優化經驗;

有 MangoDB / Redis 等No SQL 資料庫設計、實現、維護經驗;

有使用 PhoneGap / Apache Cordova 進行移動應用開發經驗;

有瀏覽器 Addon 擴展(以擴展的形式添加一些為提高用戶體驗的附加功能)開發經驗者;

Ⅲ 前端面試的時候,被問到項目經驗的時候,該怎麼回答,要注意些什麼

就是你以前干過什麼工作,經驗就是你的職業特長,如果特長較多,就選擇與你應聘的工作有直接和間接有關的特長就可以了。

Ⅳ 軟體工程師面試時,HR都會問些什麼問題

軟體工程崗位面試大致可分為兩類:特定領域知識面試和計算機科學基礎知識面試

特定領域知識面試
特定領域知識面試通常涉及到你最熟悉的技術領域的具體知識點。例如,如果你主要使用Angular1.x進行前端開發,並且面試公司又有 Angular前端,那他們就可能問你關於 Angular控制器、指令和服務的相關內容。也就是說,你需要做好准備去建立、展示和討論Angular。
特定領域的面試重點關注的是你已經實際構建起來的東西,因此要想順利通過這些面試,最好是你已經構建過相關技術的項目。你應該為自己的工作而感到自豪,不必感覺不好意思,而應該深入探討具體項目的技術細節。項目最好是近階段完成的,沒人會願意去聽你去年寫的那些代碼,你自己也會對這種陳舊的項目感覺厭倦,面試效果也欠佳。
特定領域面試的另一個常見策略是看求職者能否構建一些非常棒的產品或者是排除實際存在的一些問題和故障。這通常是讓求職者帶回家去完成的一種測試,求職者一般有 24-48個小時的時間來完成這些測試。例如,如果你是一名 Laravel開發人員,並且你面試的公司恰好也使用 Laravel,那他們可能會要求你構建公司產品或者是公司定期創建的產品的微縮版本。對於這種帶回家做的測試,做好投入大量工作的心理准備。准備好啟動模板,不要抗拒去Google搜索答案,發送電子郵件尋求幫助和使用外部工具包這些做法。因為能否通過特定領域面試最重要的一個衡量標準是你能否構建出有效的產品。
計算機科學基礎知識面試
計算機科學和基礎編程面試明顯不同於上文所探討的特定領域面試。計算機科學和基礎編程面試是為了評估你解決問題的能力,更多的是關注找到最佳解決方案的能力,而不是簡單的去完成某些特定任務。因此,面試官通常也不會問關於你是誰、你過去的工作經歷或者你構建過的項目方面的問題。對於計算機科學基礎面試這一類型來說,面試官的工作就是評估你的原始編程能力,通常他們是通過數據結構和演算法相關的問題來進行評估。
計算機科學基礎面試的問題有章法可循。因為學習數據結構和演算法需要大量的准備工作和長時間的學習,你需要了解你所選擇的編程語言、數據結構和演算法來解決問題。計算機科學基礎知識面試通常可以用六種不同類型的演算法來解決:
深度優先搜索演算法/廣度優先搜索演算法
貪心演算法
滑動窗口演算法
分治演算法
遞歸演算法
動態規劃演算法
你需要研究每一種演算法,可以在 Pramp上與其他軟體工程師一起練習面試和面試問題。應對面試是一門獨立於軟體工程師之外的技能,你可以通過練習和重復來提升自己在面試時的表現。
計算機科學基礎知識面試通常遵循的那些問題結構對於求職者來說只有通過幾個小時的練習和准備才能發現。即便這些知識中的一部分並不適用於日常的編程任務,但只要你堅持這樣做,你就能抓住更多的面試機會,就能收到更多公司發來的 offer。如果你的目標是獲得更多的工作機會,那你一定要看一下《Cracking The Coding Interview》這本書,並且查看這一免費的面試資源來進行相應的准備工作。

Ⅳ 沒有項目經驗的前端應屆生,如何面試才會被錄用

沒有項目經驗的前端應屆生面試的時候一定要自信,陽光,熱情,然後還一定要謙遜有禮,然後要懂得去讓面試官知道自己的價值。

Ⅵ 前端怎麼面試才能拿到高薪Offer

1. 要有比較好的計算機基礎
這里的計算機基礎指的是數據結構與演算法,操作系統,編譯原理,計算機網路等等。雖然相對於其他方向而言,前端在工作中用到計算機基礎的地方可能少一點,但是無論大小廠,招實習生其實都是為正式招聘做儲備,所以會比較希望招將來有更大發展空間的人,就像里 Web 前後端分離的意義大嗎? - 知乎用戶的回答 和 怎樣成為全棧工程師(Full Stack Developer)? - 知乎用戶的回答 描述的那種。
如果你具備比較好的計算機基礎素養,那麼以後在拓展到其他領域(WebGL —— 計算機圖形學,Node.js 底層 —— 操作系統,JS 引擎和各種預編譯工具—— 編譯原理, etc.)的時候會更快上手。另外有一些公司對前端的概念不局限於 Web 前端,也包括移動端偏前端的部分,這里也需要你有比較好的計算機基礎才能做好。前端領域有很多人已經不滿足於造輪子,直接跑去造語言了,如果你編程基礎夠好,接觸過各種形形色色的編程語言和範式,再上手這些東西也會方便些(比如Ruby/Python->CoffeeScript,Haskell->LiveScript)。
雖然也有很多地方為了招到足夠多能來幹活的前端會降低對計算機基礎的要求,但是打好這方面的基礎是沒有壞處的,如果面試筆試被問到且答得上來,也是能夠加分的。一些大廠經常會出現「不是前端的面試官來面前端」的情況,我個人是覺得如果這類面試官問的都是計算機基礎問題的話,其實真的無可厚非,畢竟人家在面「一個前端程序員」之前,是在面「一個程序員」啊……

2. 要懂得現代前端的一些新技術
比如:

前端自動化工具(Gulp/Grunt等)
模塊化(CommonJS,AMD/CMD模塊載入器,各種Bundler,ES2015 Moles等)
前端 MV* 框架(Backbone,Angular等)
編譯到 CSS 和 JS 的一些語言(Less/Sass/CoffeeScript等)
前端自動化測試工具(Karma,Mocha,Web Driver等)
其他
有一些同學覺得這些東西懂得越多越好,我個人是覺得這些工具不一定要都了解(畢竟它們很多也未必能火多久),但對這些東西要有大致的概念,並且每個領域的用過一兩種(最好是在項目里),清楚它們的優缺點和必要程度。這是區分在前端上投入過一定精力的人和跨行來兼職前端的人的標志。
去大廠校招應聘前端的會有很多隻是做過一些 Web 項目,但不一定對前端的技術很了解,只是看前端門檻比較低就去投簡歷的人。如果你對這些新技術比較了解的話,起碼能夠證明你是比較專注前端而且花過一定時間在上面的。
同時,前端現在確實是一個每天都有很多輪子冒出來的領域,也需要你有足夠強的自學能力和(英文)文檔閱讀能力去跟上社區的這些新動態。接觸過比較多的輪子,才會有自己的判斷,不會老是人雲亦雲火一個學一個。這些工具里,確實也有很多在合適的場景下可以提高前端的生產力或者代碼質量,對這些東西有一定關注,也表明你對自己的生產力和代碼質量是有一定關注的,這其實是一個更廣義的靠譜程序員的特性。

3. 懂得什麼是 Web 標准和瀏覽器開發維護的流程,並且會跟進新發布的標准和主流瀏覽器新實現的特性
當然面試的時候一般不會直接問你這方面的問題,但是如果你懂這裡面的水大概是怎麼一回事的話,在很多問題上(特別是兼容性問題上)都能回答得比較深刻一些。最好清楚:

HTML、CSS、DOM,ECMAScript 和一些泛 HTML5 的標準是怎麼制定的
W3C 和 WHATWG 的區別
各種標準的不同版本和提交狀態是怎麼回事
知道標准和實現的差距(有些人喜歡把 W3C 標准奉為圭臬,但現實中瀏覽器們並不是這樣的)
知道 ECMAScript 和 JavaScript 的區別
知道瀏覽器的一些常見做法(比如給 CSS 特性加前綴)的緣由
標准和瀏覽器這灘水還是很渾的,涉及到很多利益糾葛和大廠的博弈,如果你大概清楚他們的一些事情,不光自己做前端兼容的時候會容易一些(不會只抱怨「為啥XXX就是不能OOO」而是懂得他們的無奈並且認真尋找解決方案),在新特性出來的時候也更容易消化(不是「啊又出了個新東西要學好煩啊」而是「在郵件列表上爭(si)論(bi)了那麼久他們終於把這個搞出來了」),你自己對前端比較基礎的那部分的知識體系更會有條理得多。個人覺得這也是區分比較有經驗的前端和臨時跨行的前端的關鍵之一,這些東西是需要你經過一段時間的耳濡目染才能理清楚,而且會在一定程度上影響你的工作的。

4. 多看書,多關注技術資訊
技術資訊的來源包括RSS、郵件訂閱、比較重要的郵件列表、或者follow Twitter和微博上一些比較有影響力的開發者。個人經驗是,一般在二面或者三面的時候,面試官都會問類似「你從哪裡接觸前端的新技術/你看過哪些書」的問題,因為前端現在技術更新很快,比較專注於前端這方面的人一般都會有自己接觸新技術的渠道,他們自然也會比較關心候選人是不是有在跟進社區的一些動向。其實這也能夠排除那些不太靠譜的臨門跨行的人,因為他們平時一般不會特意去關注前端技術的新動態的。

5. 不僅懂得一些東西怎麼寫,更要懂得一些東西不要怎麼寫
Web 標准大多不是嚴格向後兼容的,很多幾年前常用的寫法,現在已經被社區的大多數人強烈建議避開了,有很多特性也隨著時間的流逝被打上了 deprecated 的標簽,如果你不幸拿著一本比較老的書入門,又不在網上驗證上面說的每一句話,那麼很有可能你就這樣被誤導很久,比如 HTML可能會逐步被XML所取代嗎?(來自《css權威指南》) - 賀師俊的回答 這樣的情況……與之類似的還有:

JavaScript 里那數量令人嘆為觀止的坑
一些在經驗比較豐富的前端看來屬於常識的東西(比如:為什麼 CSS 大多放在 head,JavaScript 多放在 body 底端?)
劃分各種模塊、文件,添加模板的正確方式(比如錯誤方式是一堆腳本/樣式寫在一個超大文件里,或者在有替代方式的情況下在 JavaScript 里拼字元串)
解決一些老問題的新的best/better practice(比如不要到了 2015 年還深陷在回調地獄,去看看 promise 和 generator)
……
這些知識都需要你有一定的前端方面的經驗,看過比較多相關的博客和書,才能慢慢積累起來,所以也能區分靠譜的前端和不靠譜的前端。

6. 不依賴某一個特定的框架或者庫
比如很常見的「離開了jQuery就不會寫前端」星人……也不是說要做原生 JavaScript/CSS 和 DOM 的原教旨主義者,但高度依賴某個框架或者某個庫的話,通常意味著換了一個框架/庫你的學習成本會比不依賴特定輪子的人高,因為這通常是處於還不知道前端領域「什麼是什麼」的階段的表現。
事實上前端領域的這些輪子有一些都是其他領域早就有,或者根本不需要的東西,其中很多的實現原理也不是那麼復雜,只不過是臟活累活。個人覺得對這些東西應該報以「不能知其然而不知其所以然」的態度,起碼大概清楚它們的實現是怎樣的套路,知道它們的優缺點,多接觸幾種,這樣在換一個替代品的時候很快就能上手。
因為前端的特殊性,在開發比較大的項目的時候使用庫和框架是必須的(比如遇到各種滑鼠事件的前端兼容問題時,總不能全都就地寫 if-else 吧,總得封裝一下。遇到非常 data-driven 的項目,還用手動操作 DOM 的寫法很難維護吧,用個 MV* 框架真的不純是偷懶了),但是這些東西都是會迅速改朝換代的,死守著某個特定的庫或者框架,確實不太靠譜。很多公司喜歡問候選人「原生 API 寫個 Ajax 請求怎麼寫」這類問題,感覺很大程度上也是在排除這類人……

7. 懂一點點設計
這里說的不是切圖啊PS啊AI啊什麼的,而是大概懂基礎的視覺傳達/色彩構成/平面構成的知識。畢竟前端是和設計師聯系最密切的程序員,雖然前端要做的事不僅僅包括 UI/UX,但是 UI/UX 卻都主要依賴前端來實現。很多時候,設計師(特別是不會前端技術的設計師)給出的設計可能很難(在照顧兼容性的前提下)實現,這個時候不應該跟他硬拼讓他改設計,或者自己默默糾結怎麼用很 hack 很難維護的方法去實現,而是理解設計的意圖,並且跟設計師溝通,盡可能在工程上容易實現容易維護的前提下實現設計的意圖,哪怕要修改一些具體的表現形態。
最恐怖的就是丟一張圖過來,讓你做到 pixel perfect,你也不問三七二十一直接開工,代碼寫得別扭也不去溝通,遇到不兼容就打個哈哈矇混過關了……設計的目標是讓大眾都能更容易地使用,這樣做是與設計師存在的意義背道而馳的,我也遇到過一些設計師會主動來問前端怎樣的設計在瀏覽器里容易實現,怎樣的設計比較別扭,這樣他才能結合多方面的信息去做設計上的決定。如果你對設計不關心,不與他交流的話,實際上相當於剝奪了一些關心工程實現的設計師的知情權(一般正常的設計師看到自己的設計實現出來效果不好,也會小郁悶的……)。個人覺得與設計師溝通的技巧,也是一個靠譜的前端應該具備的素養。

8. 懂一點點後端
(這個是我看了一下別人的答案補加的)。其實這個和第一點的目的類似,最重要的是別要做一個非得等隊友來才能開工的人。大廠(主要是阿里系)有不少在用 Node 做前後端分離一類的事,另外做前端的經常要在後端還沒寫完的時候自己去 mock 一下數據介面,如果你懂怎麼搭建簡單的伺服器和 serve 數據給前端,那麼就可以提高開發的效率。即使你只想專注前端,但前端有很多東西(比如 JS 跨域,WebSocket,SSE,WebGL 的素材獲取)都需要你懂得架設簡單的後端才能去實踐,這時候不懂後端通常就意味著你要放棄學習這些知識,或者只能紙上談兵。一個正常的前端肯定是要對計算機網路和 HTTP 等協議有一定了解的,有了這些知識去學簡單的後端其實是很水到渠成的事情。

9. 在前端投入足夠的時間
意識到以上幾點還需要投入足夠多的時間才能看到成果,不然很容易出現「道理我都懂,可是OOO」的情況,那最後也還是靠譜不了的……如果不是真的對前端感興趣並且投入足夠多的時間,與其為了「好找工作」而投前端,不如轉一個更合適的方向。阿里前端的困局與突圍 · Issue #141 · lifesinger/lifesinger.github.com · GitHub 和 圖靈社區 : 閱讀 : 企業軟體領域前端開發的困境 都能說明這個問題。
另外有些面試官喜歡問你一些很細節的 API (雖然我個人覺得這類問題很囧),這些東西很多時候都是靠的「無他,但手熟爾」,雖然有一些確實有點刁難人的味道,但有一些真的是如果你經常寫前端,重復多幾次就會記住的,如果記不住,只能說明你前端寫的不夠多。還有一些沒足夠實戰經驗的人很少遇到過的問題(比如 JS 跨域),也是需要在前端投入足夠多的時間,才會接觸到(無論是紙上談兵,還是項目里遇到)。

其實綜上所述,不靠譜的前端大概表現就是:計算機基礎不好(更糟糕的是編程基礎都不行,不過編程基礎和計算機基礎好不好跟績點高不高專業對不對口這些其實真的不一定有什麼關系……),對前端的認識還停留在十年前,對社區出現的新工具完全不認識(沒認識全很正常,但完全不了解就有點兩耳不聞窗外事一心只讀聖賢書的味道了……),不懂 Web 標準是怎麼回事或者不在意標准,遇到兼容問題就復制粘貼搜到的代碼,對於一些在社區里是常識的坑毫無意識地各種踩,「離開了jQuery/某庫/某框架就不會寫前端」星人,或者平時根本沒怎麼做過前端的東西,只是做做 Web 項目順帶寫前端,到應聘了臨門一腳跑過來……不管是平時學習還是筆試面試,盡量避免向這些特徵靠攏就可以了。事實上大廠們招人不一定會要求這么嚴格,而且大廠里的團隊本身也未必個個靠譜,但是平時有在這些方面努力的話,起碼如果掛了會知道自己哪裡不足,或者到底是他的問題還是你的問題……

以上大概就是我覺得拿到大廠(or前端比較靠譜的中小廠)前端offer需要的水平,其實我感覺沒必要拿「實習」這個詞來限定自己,盡量往高水平靠攏,才能做到是你來選公司,而不是公司來選你,這樣你才能結合興趣/家庭/個人規劃之類的因素拿到最適合自己的 offer。另外,我覺得面試這回事是這樣的,上面提到的這些特徵,每一條單獨拿出來,在不確定面試官的情況下,既不是拿到offer的充分條件,也不是拿到offer的必要條件,某一條不滿足,也不是拿不到offer的充分或必要條件。大廠的面試官有很多種,有些設計出身喜歡問設計,有些後端出身喜歡問偏後端的東西,有些喜歡問你API細節,有些喜歡問你實現思路,有些喜歡看你學習能力,有些面試官本來就不是前端所以喜歡問你基礎題。如果你側重某一些方面,雖然無可厚非,但是運氣不好遇上期望不同的面試官,可能你就會得到比較低的評價或者掛掉。確定能拿 offer 的唯一途徑,就是面面俱到,這當然是不可能的要求,但大廠的種種因素配合起來往往就是在找這種不存在的人才,真的想拿 offer 的話,就只有硬著頭皮盡量靠攏。

就像國內很多大廠里比較著名的前端們文章/博客/知乎里提到過的一樣,前端這塊水不是很深,但水非常非常寬,在考慮將來作為一個前端如何發展如何應對天花板之前,先要腳踏實地把這些屬於前端的「本分」的東西搞好。事實上前面提到的這些東西我也沒有全都做到。作為前端,個人覺得最重要的是要保持一顆開放、謙卑的心,不要抵觸新東西,永遠記得外面的世界還有很多東西自己不懂,要繼續學習。

Ⅶ 前端面試題包含angularjs嗎

未來的發展趨勢是前端後端只靠json數據來進行通信:後端只處理和發送一段json數據到前端,然後計算和模板渲染都在前端進行。而前端的改動後,形成json數據然後傳回到後端。未來趨勢就是:後台程序再也不做模板的任何處理

AngularJS
的作用簡單說就是就是把後台的json值直接用html進行渲染,然後html的操作又直接在形成json傳回後台。

未來的後台MVC,試圖不再是模板了,而是一段結構整齊標準的JSON,而這個JSON作為前台的model直接在AngularJS直接使用。

或者說後台的試圖是前台的模型,而整個前台就是後台的視圖。後台程序再也不做模板的任何處理了。

Angular是框架的一種,不學也能開發前端。學backbone或者ember也能開發前端。沒有js的mvc,就光弄個jquery,也能開發前端。

那到底要不要學?個人覺得就是要看發展趨勢。angular是否簡化的前端開發,是否符合未來前端的開發趨勢。以現在的js的發展程度來看,angular
是符合發展趨勢的,第一,解耦前端,第二,可以模塊化,第三可測試,第四天生支持json,第五依賴注入等等等,還有一些其他特性使得angular跟隨甚至是推動了前端的開發趨勢。

所以說angular學習是有好處的:
1.了解前端的開發趨勢
2.學習MV*的設計方法
3.學習模塊化編程
4.學習如何測試模塊
5.使用angular簡化開發流程
6.隨著google的大力支持和逐漸流行,公司開始使用angular,有些崗位需要有angular的知識才能工作。

Ⅷ 面試會問angularjs什麼問題

對於angularjs中必須要問的就是指令,其實還有angular的配置文件,angularjs的provider,constant,factory,service區別什麼的。指令回很重要,答面試過程中一般都會問

Ⅸ 求angular2大神解答,為何URL為null。做的是angular2+servlet的http請求,結果報了如下的錯。

首先是電話面試,當時正在上班,人多口雜,好不容易找了個沒人的地方開始面試。面試的方向是Java Web,面試官很nice,跟朋友一樣,一開始問了些比較基礎的東西,比如hashmap/hashtable的區別和優缺點,我答得還行,而且對於原理的東西還算講的比較透徹。

Java Web的面試自然就會問到servlet,對於java多線程的東西還是那樣,原理性的東西和底層的機制都比較清楚,面試官也還算滿意,但往上層就不是我擅長的了。當被問到AOP時,竟然語塞、啞口無言,因為根本忘了是干什麼的了。本科的時候曾經做過Web伺服器類似的課程設計,其實有接觸過,然而讀研的時候方向太偏,過於底層,基本也就沒做過Java Web方向相關的項目。純粹是憑著對互聯網的熱忱以及一些網上有著同樣追求的朋友,從讀研到工作一年,依然堅持關注互聯網相關技術。

盡管後來的問題有些沒答上來,但面試官還是給了我一次面試的機會,11.20日從北京飛武漢參加專場面試。一面依舊先是一些基礎的題目,然後寫了兩個演算法程序,字元串轉換相關的,都挺簡單的,雖然第二個題當時沒有很快反應過來。一面的過程中,發現以前掌握的一些東西真的有好多都忘記了,比如UML的類圖關系怎麼畫,資料庫建表均不能第一時間寫對,再比如Http協議302/301是什麼意思等。我本以為會問許多和Java Web框架相關的問題,所以電面後一口氣,不到一星期把《Spring in Action》、《Struts in Action》還有Hibernate的一本電子書以及《深入分析Java Web》全刷了一遍,然而並沒有問太多框架相關的問題。後來算是自由發揮,就把自己以前做項目時碰見的JVM調優過程講了講。

二面面對兩個面試官,基本不算是技術面,主要對著簡歷問了一些做過的項目相關問題,以及個人經歷。由於自己項目經驗還算豐富,做過的東西還算扎實,所以這個不算什麼問題。後來又問了自己對自己的定位及對於B2B業務有什麼看法以及base的問題,這就不多說了。有一個問題倒是難了我一下,當然也就1秒鍾。根據我的簡歷,我做系統和底層的東西更適合,所以面試官問我是否願意去阿里雲,我知道阿里雲是潘愛民老師帶的,以前還和潘愛民老師合過影,相信很多人都看過《程序員的自我修養》,從中受益過。但我的回答是:「我確實覺得這個方向也不錯,也很仰慕潘老師,但既然我來面B2B Java Web相關的職位,說明我更傾向於做偏應用方向的東西。」

大概是因為我有一些同學和朋友在阿里,自己也比較關注阿里,對阿里的技術框架還算比較了解,所以二面比一面情況好很多,感覺面試官還是挺滿意的,只不過提了一點就是我剛工作一年多,覺得年頭少了點。

終面完畢,和兩次面試的面試官都打好招呼後回到住的酒店睡了一覺,本來有些忐忑,結果快晚上時,面試官一個電話過來說我情況還不錯,以後就算是同事了,預計會一周之內通知。聽到這個消息,當然是相當興奮,在向面試官道謝後,和武漢的同學一起吃了頓飯,心情格外舒暢。

現在應該算是在等待最終的offer吧,希望自己好運。

「你學習一門技術的最佳時機是三年前,其次是現在。」這話從來很靈驗。經過這次面試,覺得需要整理下Java Web相關的資料,以便自己提高或者更快適應可能面臨的新的工作。

首先談談Java Web需要掌握哪些東西。這里是一些知識點的搜集,暫不做詳細說明,歡迎各位博友補充指正。

1.底層

Servlet是運行於服務端的java程序,一般實現自己的Java服務端應用都從HttpServlet類繼承,然後實現自己的init | doGet | doPost | service方法。Servlet的生命周期從其載入開始,首先執行一次初始化,調用init方法,之後便可運行自身的服務,當生命周期結束時,調用destroy方法回收資源,結束服務。

僅了解原理當然是不夠的,還要實戰能力,在IDE中寫寫簡單的代碼誰都會,然而真正讓一個程序能夠運行起來也還需要點其他的東西,這里我指的是Servlet的容器。servlet的容器有很多,常用的以Tomcat為例,安裝好Tomcat後,在開發時必須包含進Tomcat的lib。IDE確實慣壞了好多人,目錄如何組織,程序如何編譯、如何部署這些問題都被IDE屏蔽掉了,如果要對整體有比較透徹的了解,建議一切從命令行動手。

具體可參考:《Servlet與JSP核心編程》。

3.框架

Java Web開發的用到的框架之多簡直令人發指,而且因為版本的更新換代導致的問題也是層出不窮。然而這也是Web技術不斷演化的結果,要麼選擇接受,要麼引領節奏。

Spring

Spring是一個強大而又「輕量級」的Java開發框架,之所以打引號是因為感覺並不是那麼輕量。Spring的主要目的在於簡化Java應用開發,以配置方式代替硬編碼方式的編程,模塊解耦,其架構如下圖所示。包括了數據訪問、遠程通信、AOP、核心容器等部分。

Figure 3 Hibernate對象狀態轉換圖

Struts 2

Struts出現的最早,也是思想提供者之一,從名字就可以看得出其重要性,其設計目的是為了簡化Java開發,統一事務切面化。

Struts最關鍵的地方在於Action的執行,攔截器的原理、valuestack及OGNL。

具體參考:《Struts in Action》

4.HTTP

這個不用多談,太重要了,作為Web開發者,如果不特別熟悉Http將會是一件很麻煩的事。

這里就不列舉23種模式了,個人覺得純粹看書學習《設計模式》並沒有什麼用,要在實際應用中碰到,並且多問幾個為什麼,而且自己寫代碼時能有使用設計模式的意識才能對各種設計模式有更深的領悟。

當然Web開發遠不止這么些東西,我這里暫時也只好先列些重要的。應用開發後,還有部署的問題,因此又會涉及CDN和負載均衡等問題就更復雜了……

另外在Web開發的過程中,要養成良好的開發習慣,比如開發之前能夠熟練地使用UML類圖,交互圖等,這將避免你犯很多錯誤。感謝面試官輕虐,自己覺得還有許多不扎實的地方,還需要繼續努力才能對得起這次機會。

閱讀全文

與angular面試相關的資料

熱點內容
晉升考核自我評價 瀏覽:480
職場新人自我介紹日語 瀏覽:700
職攜求職公寓 瀏覽:354
醉駕人找工作 瀏覽:973
百度廈門六中藝術特長報名表 瀏覽:868
勁霸經編面試 瀏覽:364
小孩綜合素質自我評價 瀏覽:470
玉環學校洗碗招聘信息 瀏覽:15
教師教育自我評價 瀏覽:192
2014合肥168中學特長生音樂錄取名單 瀏覽:478
應屆生面試自我介紹範文3分鍾 瀏覽:800
丹陽人才招聘網 瀏覽:72
生物學科特長怎麼寫 瀏覽:250
昌碩面試後多久通知 瀏覽:925
陝西省鐵餅特長生 瀏覽:751
碩展科技有限公司招聘 瀏覽:346
2019年南陽卷煙廠招聘信息 瀏覽:461
時尚招聘信息 瀏覽:341
安吉潔美電子招聘信息 瀏覽:106
個人簡歷問候語 瀏覽:924