成功入職頭條月薪35K,附專案原始碼
一面:
先是問了問專案,然後就開始問一些問題
1、每個請求耗時100ms,機器的配置是4核8G,問要達到10000TPS需要多少臺機器?
沒答上來,問了問是IO密集型還是CPU密集型,然後面試官說我想得太複雜了
2、怎麼實現網頁的自動跳轉
答301 302的Location欄位,然後又問了我這兩個有什麼區別
3、有一個10G大小的檔案,裡面都是32位的無符號整數,但是記憶體大小隻有1G,問如何找出裡面重複的數字
一開始說用hash,先hash到小檔案。面試官說有沒有更簡單的,答點陣圖,又問你覺得點陣圖會佔用多大的記憶體空間。算了一會,答512M
然後就是演算法題,一個Unix的路徑,簡化這個路徑,Leetcode上有原題
一面大概36分鐘
二面:
圍繞專案問了很多問題,和我討論了怎麼保證雙寫的一致性、訊息佇列中訊息積壓了怎麼辦、為什麼要用到分散式鎖、ZK的分散式鎖的使用流程、ZK的選主策略、同步策略然後又圍繞Kafka問了一些問題。
1、Kafka怎麼保證順序消費?
2、Kafka的架構是什麼樣的?
3、Kafka可以保證一個主題所有的分割槽都順序消費嗎?
演算法,給一個數n,求所有和等於這個數的連續子序列,比如15=1+2+3+4+5=4+5+6=8+7,所以輸出3.
三面:
主要是圍繞著基礎的知識問了一些問題:
1、Java的GC
2、反射,反射是怎麼實現的。
沒看過是怎麼實現的,現場猜想了一下,應該答錯了
3、講一下樂觀鎖和悲觀鎖
4、網路協議的分層,每一層是幹嘛用的
5、DNS是哪一層的,域名解析的過程是什麼樣的?
6、程序間通訊的方式,什麼情況下需要程序間通訊?
這個題答得也不太好,講了管道、訊號、共享記憶體區域
7、volatile關鍵字
8、Synchronized和Lock
這個地方我是想等他來問我底層的原理,所以說的時候沒說完。不過說完他也沒反饋,也許知道什麼就應該全部說出來?
做一道演算法題,序列化和反序列化二叉樹
9、核心態和使用者態介紹一下
最後面試官和我聊了聊平時是怎麼學習的,最近學什麼東西比較有心得,以後的職業規劃是什麼。
面試資料整理彙總
這些面試題是我朋友進阿里前狂刷七遍以上的面試資料,由於面試文件很多,內容更多,沒有辦法一一為大家展示出來,所以只好為大家節選出來了一部分供大家參考,需要全部文件的,關注小編後,
面試的本質不是考試,而是告訴面試官你會做什麼,所以,這些面試資料中提到的技術也是要學會的,不然稍微改動一下你就涼涼了
在這裡祝大家能夠拿到心儀的offer!