字节教育后端面经,已oc
体验
流程很快,一周就结束面试 + oc了。
感觉字节很重视算法题,我基础得有一半答不上来,题差不多写出来了,最后还是过了。
当然也有可能会参考学历和实习,我这一块还ok,所以面了包括字节在内的好几个公司,回答的都很差,但最后基本面试都过了。
面经
没有详细去记录每一面的内容,放一波汇总的回忆版:
算法题
做的比较快,所以多出了几个题,但都比较简单。面试官还问我是不是都做过,我说差不多,我每周有打周赛的习惯🐶。
- 无序数组中第k大的数
- 合并两个有序链表
- 合并k个有序链表
- 判断bst
- 二叉树最大路径和(leetcode 124)
- 二叉树最大路径和的follow up,输出这条最大的路径(不会)
- 求a+b=m的对数,例如[1,1,2,3,4,5,6,7,7,8,9],m=8,这里应该是5对
- 已知rand3(),求rand5()
基础
我不太能背的进去基础,所以就没几个问题回答好了的,当然这些问题可能都还算高频。
- https加密的详细过程
- 如何依靠CA证书来避免访问到伪造的服务端
- 状态码301 302 502 504
- 讲讲arp协议的过程?arp欺骗是什么?如何避免?
- 讲讲dns的过程?dns劫持是什么?如何避免?
- tcp如何保证可靠性,讲讲流量控制和拥塞控制是怎么实现的
- 进程和线程的区别
- 协程是什么
- 内核态和用户态的区别
- 进程有哪些调度方法
- CPU特权等级是什么
- MySQL默认隔离级别是什么,可重复读是如何避免幻读现象的?gap lock、next-key locks是属于哪种锁?
- 假设这里不采用auto_increment的主键,而是随机的uuid,性能会提高还是降低,为什么?
- redis5种数据类型
- 压缩列表是怎么实现hash的?为什么有时候要采用压缩列表而不是哈希表?渐进式hash的流程?
- aof和rdb的区别?rdb bgsave的过程中,如果有新的值插入,会不会被持久化?
- redis是怎么实现事务的,你觉得它能保证原子性和持久性吗?
- 看你项目用到了Druid,为什么不用别的,有和别的OLAP数据库对比过吗,例如了解clickhouse吗?
- 为什么Druid采用lsm-tree作为数据结构,为什么不用红黑树或者B+树?
- 项目是如何保证缓存和数据源的数据一致性的?
- 你们的统一权限管理系统是怎么做的?cookie/session/token的区别?