今天进行了抖音的二面,接近一半的问题没有答出来,本以为这学期已经学了很多,看了很多书,突然感觉自己还是好菜,以前虽然菜但还总是觉得有时间可以学,现在临近春招了还是这么菜,唯一庆幸的是认识到了自己的菜,希望春招的时候自己不是这么菜了。无论是为了whr还是自己都要加油了。
一面
- 线程和进程的区别
- 四种引用类型
- 可达性分析算法的root
- volatile的作用和原理
- juc里的锁juc里的锁
- atomic包里的一些问题atomic包里的一些问题
- 二叉树的先序遍历,层序遍历 非递归
- 快排的原理
- 用栈实现队列
- 包括max函数的栈
- 包括max函数的栈(辅助栈的空间也是n,有什么优化方案 没想到)
二面
一面很轻松的答完了,以为自己也不错,事实上只是问题太简单了或是问到的问题正好我会。
- arp忘了
- mmu没听过(还以为是一个协议。。)
- BIO NIO AIO
- HTTP的流量控制,具体的控制算法
- 自旋锁 互斥锁(这个问的是Linux中的内核锁机制,忘了)
- redis的zset底层实现
- mysql的聚集索引(回答说是根据主键构建B+树,概念错了)
- 用过mq吗,设计一个mq (没有考虑到消息的可靠性投递等等问题)
- 写一道简单的算法题
- 在n个消息中等概率的选取一个,再来一个消息,不在原來的n个消息中取,如何操作可以保证得到的消息还是等概率的就是1/(n+1)这个题目我描述的不是很好,面试官也没有描述的很好,但是我想了好久都没想到,提醒了我2次后面试官直接和我说了答案让我推导公式给他看,难过,突然感觉自己好蠢,不过这题的答案真的妙啊。
我以为结束了,又问了一个问题 - 实现一个lru,说了好久,一点一点从get set时间复杂度到怎么支持缓存过期