一、问答题
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/