面试公司:快手
面试岗位:Java开发
一面 60min1.自我介绍2.指针和引用的区别3.对多路复用的理解4.虚函数实现机制5.线程如何操作临界资源?6.STL内存池有了解吗?7.智能指针如何实现计数的?8.数据库事务了解吗?9.STL都有哪些容器?10.Map和unordered_map的区别,查删增操作时间复杂度分别是多少?11.Hash时间复杂度一定是 O(1)吗,怎么解决?12.对红黑树的理解,为什么数据库要用B+树索引不用红黑树?13.字节对齐,为什么要字节对齐?14.三次握手和四次挥手15.项目相关16.算法题:复杂链表的复制,链表除next还有一个random指向随机节点的指针
二面 50min1.自我介绍2.声明和定义的理解3.fork函数4.多线程如何同步?互斥锁和条件变量的区别5.对虚拟内存的理解6.算法题:链表相邻节点调换 1,2,3,4,5 ->2,1,4,3,5层次遍历二叉树7.场景题:亿级别query其中有重复,如何找到重复率top(100),单机场景
HR面1.自我介绍2.平时用快手吗?3.个人信息4.毕业时间、实习时间5.实验室、项目背景6.为什么投快手,有在投别的公司吗?7.研究生阶段遇到的困难,遇到问题怎么解决?8.最近在看什么书?9.用三个词形容自己,详细说说



