字节抖音后端一面面经
整体顺序:项目--CS基础--手撕代码
项目问的比较多,问到了如果要分布式该怎么处理,负载均衡该怎么办(这里思路基本是被带着走,面试官暗示一点我答一点),性能怎么继续优化
数据库题:怎么实现AB互相转账,加行级锁会产生循环等待死锁怎么解决,代码怎么加行级锁,可不可以用乐观锁(说了下乐观锁的原理)
操作系统:虚拟内存有啥用,怎么把虚拟地址转化为真实地址,堆栈是什么,怎么设计一个堆的数据结构和物理结构方便管理(这里卡了很久,一开始说树,但是树会退化成链表,又说用链表,但是链表搜索不好,面试官苦苦暗示,我终于说到了“树+链表”)
计算机网络:tcp的可靠性是怎么保证的,reno和bbr,除了快重传还有其他的重传机制么,怎么保证不重复帧
撸算法题:
1、阻塞队列
juc的几个函数全忘干净了,只能撸了一个简单的队列,第一次写了一个效率特低版本,被面试官暗示终于写了出来,然后面试官苦苦暗示我该用什么juc函数,but,我是真的忘记了。。。
2、股票买卖
狂喜,直接秒了
面试官真的不容易,很多问题基本都是引导我的思路一步步走下去,奈何我还不争气(拍桌)
勉强给我过了,还跟我说了我前两次字节实习三面挂的原因都是因为“代码没有表现出ACM应有的水平”,事实上我的代码量确实是少,所以平时多写代码多刷题真的很重要。
#面经##校招##字节跳动##Java工程师#