阿里 & 酷家樂:實習生面試

最近海投了十家公司,暫時有阿里兩面(已涼)、酷家樂兩面(大概涼了)、網易一面。前兩個都是基礎知識發揮得還能夠,兩家公司二面都涼涼。程序員

阿里一面(3.21 26min)

恰好買了中飯回宿舍打開正準備吃的時候,我手機響了,我定睛一看0571這不是阿里的號碼麼,頓時就慌了,立刻找耳機、拿簡歷出來。面試官小哥哥介紹了一下本身是阿里新零售部門的面試官,問我如今有沒有時間,想和我交流交流。emmm...我說有空有空,而後就要我自我介紹一下。當時特別緊張(一是這是我人生中第一次面試多少有些慌,二是感受本身準備得還不是特別充分,想在本身最夢想的公司的面試官前展現得更好),自我介紹的時候聲音都在抖(有一兩句喉嚨憋住說不出話來,我說剛剛我跑上來的有點喘,小哥哥說沒事沒事),word天,當時腦子裏就想着涼涼了涼涼了。面試官哥哥確定感受到了個人緊張,沒有直接進入正題,而是問了我在學校都學了哪些課程,聊了會兒天。慢慢我就不緊張了,雖而後面問題感受回答得不是很好,應該拓展地解釋一下的,但仍是很感謝面試官小哥哥呀,真是太貼心了~面試

 

自我介紹算法

學了哪些課程?開源項目瞭解過哪些?數據庫

進程和線程的區別後端

何時發生死鎖?如何解決?(死鎖產生的四大條件,經過破壞四個必要條件之一,如調整加鎖順序、設定加鎖時限超時放棄、死鎖檢測、死鎖避免的銀行家算法可解決死鎖問題)數組

可重入鎖爲何不會致使死鎖?(由於上一個問題我回答了不可重入鎖會致使死鎖,面試官接着就問了可重入鎖的原理,我就說了一下第一次加鎖就獲取該對象的Monitor,當Monitor計數器不爲0時,只有得到鎖的線程才能再次得到鎖,而且每次加鎖Monitor計數器就會加一解鎖就會減一,當計數爲零就釋放對象的鎖了)緩存

項目相關:內存數據庫裏存了哪些東西?心跳檢測和斷線重連是怎麼實現的?服務器

ConcurrentHashMap和HashMap的區別(我說我先將一下HashMap吧,put方法get方法擴容機制blablabla,面試官:你講一下二者的區別就行啦,估計是知道咱們都背得倒背如流了)網絡

Redis應用場景(不順便問問內部的數據結構麼...)數據結構

介紹一下快排(複雜度也沒問,就說了一下步驟和原理)

什麼時候畢業?你的將來職業規劃是怎樣的?(我說我想學習一下高併發、分佈式相關的)

你還有什麼要問個人?(我問了部門平時主要業務是什麼,後端主要作什麼工做)

面完後我感受本身確定GG了,當時已經作好看到「已回絕」的打算了,結果我打開網頁一看——「待安排面試」,內心也是舒了一口氣。

 

阿里二面(3.27 32min)

 

當時約好酷家樂一面的,而後忽然阿里的電話打過來了,說要進行二面。誰知道面試官看我簡歷裏有一個藍橋杯的省獎(原本只是爲了湊簡歷的獲獎狀況一欄...畢竟省獎太爛了跟沒有同樣)

自我介紹

項目經歷

你以爲在大學裏學哪方面的東西更有價值?

數據結構的理解、區別、優缺點、實現原理(數組、鏈表、棧、隊列)?

動態規劃、貪心算法有沒有解決過實際問題?

數據庫三大範式?

進程調度算法?適用場景?

操做系統虛擬內存管理?

面向對象與面向過程的區別?

二面回答太爛了,面試官面了30分鐘就不想問了。原本本身準備得多的JVM、計算機網絡、多線程、數據庫全都沒問,後來想一想應該要引導一下面試官往那方面問的。哎,仍是本身太渣...

 

酷家樂一面(3.27 55min)

 

酷家樂的面試體驗確實挺好,每面都會有HR和我約時間。一面回答得不錯,畢竟都是基礎問題,後面就聊了會兒天啦。

介紹一下項目

第一個項目:有深刻了解消息隊列嗎?消息推模式和拉模式?如何保證消息的一致性?單聊羣聊怎麼實現?離線消息的存儲?消息的可靠性?Netty IO模型?多路複用epoll?比較好的實現AIO的方式?

第二個項目:斷點續傳、極速秒傳如何實現?md5碼怎麼生成的?Redis Cache用AOP如何實現?本身如何擴展?Redis的使用場景?Redis緩存過時策略(原本講的lru、ttl、random,但面試官想問的是定時、按期、懶漢式刪除三種方式)?

MySQL相關(存儲引擎、索引結構、查詢優化、隔離級別、事務機制)?可重複讀是怎麼實現的?

Java方面哪些部分比較瞭解?(我說的JVM、多線程,面試官就說聊多線程吧)

線程池在項目裏的應用?線程池的初始化參數(我說的分爲CPU密集型和IO密集型不一樣場景去設置,面試官說這個只是理論上的,實際應該如何作呢)?

Netty壓力測試的上限?有看CPU使用率嗎?線程池裏有沒有任務堆積的狀況?

線程池阻塞隊列用的是什麼?如何實現阻塞的?

可重入鎖的實現?

CLH隊列的數據結構是怎麼樣的?任務完成後怎麼讓後面的任務獲取到同步狀態的?經過什麼方式喚醒的?

CAS的弊端(高併發狀況下的性能問題)?JDK後期版本對atomic包下的類怎麼優化的?競爭激烈條件下如何優化?

ConcurrentHashMap如何解決高併發的問題?(啓發我上一題的思路,只知道分段鎖,面試官說這個確實問得有點偏了,實際上是要我講LongAdder的實現)

算法方面怎麼學習的?經過什麼方式學習到哪些算法知識?學了數學方面的課程吧?

看你也有個博客,以什麼方式去維護呢?

看過哪些書?

有維護過Linux服務器嗎?Linux命令說一下?有些過腳本嗎?

JVM有過什麼排錯經驗呢?

你有什麼想問個人?

 

酷家樂二面(3.28 55min)

 

也是個小哥哥,一開始就要我拿紙拿筆,我就知道要考算法啦,完了完了。

有兩個數組,一個數組裏存放的是正整數,另外一個數組裏存放的是負整數,都是無序的,如今從兩個數組裏各拿一個,使得它們的和最接近零。

有一個無序的數據流,維護已經有的數字裏的中位數。

判斷兩個鏈表是否相交。

場景設計題:圖書館借書,每一個人經過一張卡借書,一我的能借10本書,每本書上限借30天。若是書借了超過30天,須要罰款每本一天一元。若是當前有超期的書或有欠款,就沒法繼續借書。針對這個場景,完成三個功能:借書、還書、還款。

前兩個題都答得很差,雖然都看過相似的題型,但沒有真正搞懂,真正考的時候就忘了。

總結

仍是怪本身太菜雞,心裏有僥倖心理,知道本身算法渣還不努力補上來,就心想着面試碰碰運氣應該不會怎麼考吧。海投了這麼多,該沉澱沉澱本身了,知道本身的不足在哪兒了。你們春招加油,都能拿到理想offer~順便請教一個你們是如何學好算法的?(leetcode刷了點題,《劍指offer》看了一遍,感受仍是沒有多大的提升)

 

做者:小潘東

本文來源於牛客網

——————————

牛客網(www.nowcoder.com)

- 互聯網名企筆試真題

- 校招求職筆經&面經

- 程序員求職實習信息

- 程序員學習交流社區

相關文章
相關標籤/搜索