快手秋招正式批 Golang后端 一二三面面经(待四面)
三面的问题实在是答不上来,心累。
8.20更新:约了四面,还是技术面..
1面(50min)
- 让我自己介绍觉得不错的项目(导致全程都没在聊实习)
- 我说的IM项目,问我心跳怎么解决周期短,链接多(没答好)
- 当连接数很多,全部都在高频率发消息,会影响什么系统指标
- 时间轮算法的优点
- context用过没 咋用的
- map为什么不安全 安全该用啥呢
- 说一下GMP
- select 如果都触发了,golang如何选择执行哪个case分支
- ch := make(chan int) ch<-1 fmt.Println(<-ch) 会不会死锁 为什么
- mysql为什么b+树,对比b,b-树的优势
- 虚拟内存,物理内存是什么
- 进程间的通信方式
- 算法:
- 链表相加
- 删除链表倒数第n个节点
2面(60min)
- 自我介绍
- 成长最大/复杂度最高的项目
- 重复消息,漏消息,你偏好哪个
- 项目亮点
- 算法:
- 实现一个中序遍历的迭代器(不能提前遍历好,少加了个*搞了我二十多分钟...)
3面(40min)
- 实习介绍,聊天
- 下面的流程你可以做哪些优化?假设执行10ms,qps是多少?
- 从kafka读出一个消息
- parse消息
- 根据parse的消息去磁盘文件A加载数据
- 根据加载的数据进行计算
- 将算出来的数据append到文件B
- 内存排序10亿个数据,要多少ms?(我直接崩溃,完全不会)
- 反问,如何学习