21秋招提前批面经-字节抖音后台
加班狗今天还在赶需求的时候,收到了抖音的意向书,开心,回馈一波。
过去的有点久了,不太记得清问题了,语言没怎么问,主要是网络和数据库,redis问的很多,能想起的大概写一下。
一面 45min:
没有自我介绍,先写个题吧:二叉树求最长路径;
innodb索引;
b+树相对于b树的改进;
select -> epoll 有哪些改进;
redis字典的实现;重哈希怎么实现;重哈希是同步还是异步;哈希键还用什么数据结构;
怎么设计一个分布式锁,这里问了好多,redlock,原子性,主从,分布式锁的一些问题,差点没顶住,持续了十几分钟;
用什么语言?golang的垃圾回收知道吗?垃圾回收都有哪些做法?智能指针?引用计数有哪些问题?
之前为什么从字节跳动离职?想做后台哪一块?存储,网络,业务后台?你居然想做业务后台(感觉被大佬鄙视了...)?
你等十五分钟,我去叫二面;
二面 1h:
自我介绍一下;
一面问了redis,我们来问下数据结构;
用过什么排序,都有什么排序;
堆排序的思路;时空复杂度;
哈希表底层是什么结构?解决冲突方法;为什么都用链地址法;链表太长有什么问题;
time_wait;
进程和线程的区别;进程隔离哪些资源;
进程的调度,进程切换;
算法题:找波谷数;
智力题:翻硬币;
你等一下,过会三面。
三面 1h:
自我介绍;
之前在字节实习,为什么走了呢?之前的mentor是谁;
介绍在腾讯做的什么东西,有哪些模块,参与了哪些模块,就是crud是吧(感觉又被大佬鄙视...);
不留深圳吗;为什么成都;
高考多少分,高考一本线,本科专业相关;
为什么考研计算机;
对实习的认识和理解;你觉得自己是一个结果导向的人吗;
都看过哪些书;
我们来看看你的基础;
写过socket编程吗;tcp的三次握手对应哪些系统调用;
为什么要三次,挥手为什么要四次;有个半连接状态,对应到具体哪步状态;time_wait状态作用;
进程/线程,进程拥有哪些数据;
一个进程有哪些段,ELF,.rodata/.bss;
给个select语句,怎么创建索引;
mysql的整体结构;
linux调试,top, ps, atop, netstat, awk;
算法题:复制带随机指针的单向链表;
我们是核心业务,用golang,你等hr通知。
写起来好像问的都比较常规,但是有很多东西问的很细,记得有好几次都是在提示后才答出来的。面完等了一周多,之前在字节实习,由于组里做的东西不太对口,只呆了不到一个月,面完一直担心会不会因为这个问题被挂,现在看来字节还是比较包容的,感恩。