快手 123面 面经
快手面经....oc 大概已经快三周了,牛客系统升级给我自动删除帖子了,不知道他们回滚预案,灰度这些咋做的....这种错误都能发生
一面
看你有过实习 介绍一下吧
1. 实习项目(LSM、零拷贝、jvm 标记复制算法、Dapper论文、稀疏索引)
2.计算机网络 tcp三次握手,客服端第一次握手后什么状态(fin-close-1)
3. hash表,一致性hash
4. 算法:手写阻塞队列
好多都忘了,隔得太远了~
二面
自我介绍(这儿我sb了,自我介绍说喜欢读源码)
1.你说你喜欢读源码,那你说说你读过的源码吧,我当时想到的是HikariCP,所以就说了它的底层利用cow和threadLocal实现无锁优化提高并发~
2.连接池你刚刚说到了 ,有什么用了,如何实现,其实和线程池差别不大,主要看场景如何设计
3.netty的NioEventLoop实现无锁优化,如何防止死循环、默认线程数这些的
4.说说你项目吧:可观测性
然后继续我的IO存储优化相关的项目,就是和一面差不多,模拟LSM的MemTable、利用零拷贝机制,自己模拟jvm标记复制算法实现buffer垃圾回收,采用顺序io方式写磁盘,建立稀疏索引
然后就是对于项目的一些高可用的一些问题了
5.你说threadlocal实现无锁优化,你说他怎么实现的,我就说线程私有,如何实现线程私有?这儿好久没看了,我就说在滴滴写了6个月go,java好久没关注了,有点点忘了....下去赶紧复盘,其实就是当前线程的比较而已。类似NioEventLoop的无锁优化,也有点点HBase的AQI队列的感觉~~
6.因为threadlocal没回答好,就说那如果让你实现你怎们实现一个threadlocal....我实现原理都忘了肯定写不了,我就说要不我写另外一种无锁优化,他说行,然后手写copyonwrite
7.cow我写得比较简单,我就说有点简单了,就是简单实现了读写分离读不加锁,然后我说有点点简单,要不我写个读写锁,golang的读写锁也有点读不加锁的味道了,但还是略有不同,他说不用
8.hash表知道不,手写一个hash表,我就实现了hashmap的get 和 put方法,利用链表处理hash冲突,其实就是代码简单实现,如果跑起来肯定有问题,我感觉.....不过大致没错
最后就是反问了,部门:奥 快手支付技术部,然后就差不多了
同时问问有没有人去快手电商入职的,中关村一号,想租房 找合租这些的....
技术面经+架构+八股 文章被收录于专栏
1. 关于当前公司所用技术架构(目前在某个短视频公司营销部门) 2. 关于个人之前接触的项目(存储、分布式、缓存) 3. 个人面经和之前的一块儿面试时的面经(核心部门 or ssp) 4. 个人简历模板 5. 手写的一些框架(时序数据库、编译器、hotring、亲缘性线程池等)