一、問答題
1. Zookeeper基本原理
a. ZAP協議解釋
2. Kafka實現
a. Kafka是如何實現的
b. 如何發送消息,如何消費消息
c. Kafka是如何選擇Leader的
d. 同步發送、異步發送的優缺點,如何控制
3. 詳細解釋GC的過程
a. GC
b. JVM狀態
4. 線程、進程、協程的區別和使用場景
a. 何時需要使用,單核的CPU應該使用什么
b. 如果在Python中,如何使用多線程
5. TCP
a. 詳細說明下三次握手、四次放手
b. 為什么需要多次
c. 半連接狀態、connection reset狀態出現在哪里
6. 編程題
a. 實現下LRU(語言不限)
二、頭條-基礎架構考察點
1. 數據結構和算法-樹的遍歷和節點尋找
2. 分布式集群一致性算法
3. 性能優化-NIO及異步實現
4. 哈希算法的實現
5. hashmap的線程安全
6. Java的GC機制和緩存使用
三、頭條-服務端
第一輪聊項目,一個題目。
給一顆二叉樹和一個整數sum,計算有哪些路徑的節點之和等於sum。
第二輪兩個題,
一個是給簡單的程序語法樹設計數據結構和接口;
一個是設計一個爬蟲系統,爬取imdb的演員、電影等數據。
考察的主要是數據結構和接口設計,架構師這個層級可能是接口設計多一點。
這些題的算法都不難,他們問的問題也多在設計上,數據結構應該怎么寫,函數定義應該怎么寫之類的。
他們主要就是做題,沒有什么口頭的問題。這個對工程師比較合適,對架構和往上的就得看運氣了。
四、刷題鏈接
https://leetcode-cn.com/explore/featured/card/bytedance/
