it電話(huà)面試
出來(lái)混,遲早要還。也有了人生第一次電話(huà)面試。沒(méi)有簽NDA,所以在這里分享一下。但愿對各位大佬有幫助。職位是架構。要求是對Java和J2EE熟,能編程,熟悉OO設計。有架構經(jīng)驗,等等等等,都是大路貨,沒(méi)什么出奇的。再說(shuō)出奇的我也不行啊。
總的感受:
用自己的話(huà)總結對方的話(huà)挺有用。表明了你在積極思考,理解了對方的意思,并且避免了雙方的誤解。關(guān)鍵是要加上自己的理解、延伸,和追加問(wèn)題。面試官介紹他們的技術(shù)時(shí)我用了這坨方法,明顯感到對方話(huà)多起來(lái),也更為隨意。大概正確的理解讓對方打開(kāi)了話(huà)匣子。
準備一個(gè)電話(huà)用耳機。不然一小時(shí)的面試下來(lái),手挺累的。而且做編程題時(shí)需要在本子上演算,拿著(zhù)話(huà)筒也不方便。用免提效果不如耳機好。尤其現在家 家都用IP電話(huà),用免提有非常明顯的雜音。
準備一杯水。除非老大您久經(jīng)沙場(chǎng),面試如老友閑談。多少會(huì )緊張,導致口干。一杯水能讓人舒服,很好地緩解情緒。
問(wèn)題挺簡(jiǎn)單,但我居然卡殼?梢(jiàn)事前充分準備多重要。下面詳說(shuō)。
大致的面試過(guò)程
寒暄過(guò)后,面試官介紹他們的技術(shù)。介紹完后,問(wèn)我有沒(méi)有問(wèn)題。我陳述自己對他們技術(shù)的理解,列舉了幾坨可能的應用,問(wèn)他自己的理解對不對。他同意。于是繼續他們的技術(shù)同他們的競爭對手有什么區別。然后又問(wèn)了點(diǎn)搜索中常見(jiàn)的問(wèn)題,比如怎么處理擴展性,怎么抓取數據,怎么整合數據,如何數據挖據什么的。目的不在了解他們的具體技術(shù)。反正也問(wèn)不出來(lái)。主要是表明自己對他們的相關(guān)技術(shù)有興趣,有一定了解。另外也是找機會(huì )稱(chēng)贊他們技術(shù)新穎的時(shí)候(前提是真覺(jué)得他們的東西不錯。誠懇很重要哈)。感覺(jué)大家言談甚歡。直到對方說(shuō)如果你有問(wèn)題,等會(huì )兒還可以繼續問(wèn)我。于是知趣打住,等待對方提問(wèn)。
問(wèn)題從我的經(jīng)歷開(kāi)始。你現在做什么。負責什么。用什么技術(shù)。多少跟Java有關(guān),多少跟JSP/Servlet有關(guān),多少跟前臺有關(guān)。多少跟后臺有關(guān)等等。你都很久沒(méi)有用Java了(俺現在做很多AJAX應用),技術(shù)不會(huì )落后么?于是俺強調其實(shí)沒(méi)有全職做Java也就一年,但技術(shù)并沒(méi)有撂下。比如倆月前還寫(xiě)了一坨stream-processing proxy server。至于JSP,一坨簡(jiǎn)單模板技術(shù)而已,用不用關(guān)系不大嘛。再說(shuō)相關(guān)書(shū)沒(méi)少看。然后列舉幾坨最近看的常見(jiàn)書(shū)籍,對方也就沒(méi)再追問(wèn)。本來(lái)想說(shuō)語(yǔ)言不重要,關(guān)鍵是背后的技術(shù)。但想想人不是來(lái)聽(tīng)我上課的,遂作罷。
然后面試官說(shuō),So you still know Java, huh? Do you know Java Collections? 我耳背,聽(tīng)成了Java concurrencies?心頭一涼。心想,哪壺不開(kāi)提哪壺囁?做JEE的哥們兒里,有多少人成天和concurrency打叫道啊?都是托Container的福。只有書(shū)本知識和玩具程序的體驗哈。不過(guò)嘴上不能示弱。答:然,concurrency的知道。結果對方說(shuō),不不不,是Collections。說(shuō)說(shuō)Collections里的常見(jiàn)數據結構。隨口說(shuō)了幾個(gè)。對方繼續問(wèn):如果有一百萬(wàn)key-value pairs供查詢(xún)用,怎么辦?答:可以用HashMap,如果你沒(méi)有synchronization的要求。對方繼續追問(wèn),可能有有什么潛在問(wèn)題?我聊了點(diǎn)常見(jiàn)的問(wèn)題,諸如數據多了需要不斷重新組織bucket,會(huì )時(shí)不時(shí)影響性能。對方接著(zhù)問(wèn):那你還用HashMap?心想:Call!設套讓俺鉆吶?于是答:因為夠簡(jiǎn)單。再說(shuō)如果擔心性能,我們可以測試嘛。找出瓶頸再優(yōu)化不遲。面試官沒(méi)有糾纏,換了個(gè)話(huà)題追問(wèn):如果這些key-value是用于cache的,用hashmap有什么問(wèn)題?答曰:可能導致大量垃圾。然后討論了一下Weak Reference,Soft Reference,和Phantom Reference的區別。對方問(wèn),如果用String作為key,還可以怎么處理?答:用Trie。面試官接著(zhù)問(wèn):那如果要做子串查詢(xún)呢?順口答:Suffix tree。奇怪的是對方?jīng)]有深入問(wèn)下去,而是換了個(gè)話(huà)題問(wèn):如果我只關(guān)心key,你怎么處理value?這個(gè)時(shí)候我開(kāi)始犯傻,答:那你用boolean或者整數,還可以知道每坨key出現多少次。結果我大概聽(tīng)力有問(wèn)題,人不是這個(gè)意思。所以面試官提示:我不關(guān)心value。于是俺醒悟:答; 那就用Set。奇怪的是他也沒(méi)有追問(wèn)關(guān)于Set的選取和實(shí)現,就跳到下一個(gè)問(wèn)題了。事后想來(lái),這是教訓:應該先問(wèn)清楚對方的需求再答題。平時(shí)我肯定是這么做的。但不知道為什么面試時(shí)這些常識通通忘掉了,先入為主。當時(shí)好像也不緊張阿。
之后進(jìn)入編程時(shí)間:寫(xiě)一坨函數交換兩個(gè)String。我一聽(tīng)想,難道是傳說(shuō)中的陷阱?于是特意確定,你是想我寫(xiě)一坨函數:void swap(String s1, String s2),運行后s1的值同s2的值交換?對方說(shuō)是。于是我說(shuō)不可能。解釋了pass by value和pass by reference。然后對方問(wèn)怎么可能。我說(shuō)你用StringBuffer或者一坨Array/某坨Collection都行。他好像滿(mǎn)意了。于是跳到下一個(gè)問(wèn)題。
問(wèn):說(shuō)說(shuō)一坨request進(jìn)來(lái)后,JSP的life cycle。我背書(shū)。然后他追問(wèn):怎么保證線(xiàn)程安全。答不要用instance variable。你要用partial/full synchronization也行,但這多半表示你的設計出問(wèn)題了。然后他又反過(guò)來(lái)問(wèn):那你在JSP里怎么保證不用instance variable。我說(shuō)不用
【it電話(huà)面試】相關(guān)文章:
電話(huà)面試07-11
面試電話(huà)是住宅電話(huà)?07-12
電話(huà)的面試技巧04-15
電話(huà)面試技巧11-21
前端電話(huà)面試06-29
電話(huà)邀約面試07-13
電話(huà)面試的要點(diǎn)07-13
熱衷電話(huà)面試07-13
留學(xué)電話(huà)面試07-13
電話(huà)面試的弊端07-13