2019位元組跳動秋招技術面試題:Kafka+反射+分布式鎖+volatile

2019-09-26   IT技術分享

一面:

先是問了問項目,然後就開始問一些問題

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、內核態和用戶態介紹一下

最後面試官和我聊了聊平時是怎麼學習的,最近學什麼東西比較有心得,以後的職業規劃是什麼。

小編福利分享:給讀者們準備了一些一線網際網路公司的面試題如下:

轉發+關注,然後私信回復「資料」即可免費獲得資料的領取方式!