一面:面試
先是問了問項目,而後就開始問一些問題算法
一、每一個請求耗時100ms,機器的配置是4核8G,問要達到10000TPS須要多少臺機器?網絡
沒答上來,問了問是IO密集型仍是CPU密集型,而後面試官說我想得太複雜了架構
二、怎麼實現網頁的自動跳轉分佈式
答301 302的Location字段,而後又問了我這兩個有什麼區別ide
三、有一個10G大小的文件,裏面都是32位的無符號整數,可是內存大小隻有1G,問如何找出裏面重複的數字學習
一開始說用hash,先hash到小文件。面試官說有沒有更簡單的,答位圖,又問你以爲位圖會佔用多大的內存空間。算了一會,答512M職業規劃
而後就是算法題,一個Unix的路徑,簡化這個路徑,Leetcode上有原題code
一面大概36分鐘blog
二面:
圍繞項目問了不少問題,和我討論了怎麼保證雙寫的一致性、消息隊列中消息積壓了怎麼辦、爲何要用到分佈式鎖、ZK的分佈式鎖的使用流程、ZK的選主策略、同步策略而後又圍繞Kafka問了一些問題。
一、Kafka怎麼保證順序消費?
二、Kafka的架構是什麼樣的?
三、Kafka能夠保證一個主題全部的分區都順序消費嗎?
算法,給一個數n,求全部和等於這個數的連續子序列,好比15=1+2+3+4+5=4+5+6=8+7,因此輸出3.
三面:
主要是圍繞着基礎的知識問了一些問題:
一、Java的GC
二、反射,反射是怎麼實現的。
沒看過是怎麼實現的,現場猜測了一下,應該答錯了
三、講一下樂觀鎖和悲觀鎖
四、網絡協議的分層,每一層是幹嗎用的
五、DNS是哪一層的,域名解析的過程是什麼樣的?
六、進程間通訊的方式,什麼狀況下須要進程間通訊?
這個題答得也不太好,講了管道、信號、共享內存區域
七、volatile關鍵字
八、Synchronized和Lock
這個地方我是想等他來問我底層的原理,因此說的時候沒說完。不過說完他也沒反饋,也許知道什麼就應該所有說出來?
作一道算法題,序列化和反序列化二叉樹
九、內核態和用戶態介紹一下
最後面試官和我聊了聊平時是怎麼學習的,最近學什麼東西比較有心得,之後的職業規劃是什麼。
面試資料整理彙總
面試的本質不是考試,而是告訴面試官你會作什麼,因此,這些面試資料中提到的技術也是要學會的,否則稍微改動一下你就涼涼了
在這裏祝你們可以拿到心儀的offer!