面经|字节跳动|提前批|后端|一面+二面+三面+HR面
76216
2022.07.25
2022.08.05
发布于 未知归属地

一面|1h

  1. 自我介绍

  2. select、poll、epoll?

  3. epoll的两种触发模式?

  4. TCP三次握手过程,有什么状态,状态机如何变化?

  5. TCP握手的目的有哪些?

  6. 什么是 TIME_WAIT 状态,为什么需要 TIME_WAIT 状态?时间是多久,为什么?

  7. TCP 和 UDP 的区别?

  8. TCP 拥塞控制?慢启动的时候窗口在什么情况下会增长?为什么会呈指数增长?

  9. Linux 中一个进程的虚拟内存分布长什么样?内核空间+用户空间(6 种不同的内存段)。

  10. 为什么要用虚拟内存?

  11. 虚拟地址映射为物理地址的过程?

  12. 进程和线程的区别?哪些资源是线程共享的,哪些是线程独占的?

  13. 使用线程有哪些好处?

  14. 使用线程有哪些坏处?

  15. 进程有哪些同步的机制?

  16. 协程的实现原理?无栈协程和有栈协程?独立栈和共享栈?

  17. 什么是稳定排序?

  18. 聊项目,难点,怎么解决?

  19. 手撕:数组循环右移。将一个长度为 n 的数组,循环右移 k 位,要求时间复杂度为 O(n) 空间复杂度为 O(1) 。

    思路:三次reverse,reverse 前 k 位,reverse 后 n - k 位,reverse 整个数组

    小插曲: 一开始使用的是 库中的 reverse 函数,写完后面试官要求自己实现这个 reverse。由于当时时间不多了又加上紧张,写完后答案一直有错,也没找到错在哪。面试结束之后,没有马上退出会议,想把这个错找出来。结果过了两分钟,面试官又回来了,说是下一个面试的还没到,就回来看看我。然后在他眼下把代码改对了。也算是有惊无险吧。

二面|1h

  1. 自我介绍

  2. 进程有哪些状态?

  3. 进程的调度算法?

  4. 进程间的通信方式?

  5. 进程上下文切换做了哪些事?流程是怎么样的?

  6. 进程在哪些场景会进行上下文切换?

  7. 上下文切换为什么资源消耗会比较高?消耗在什么地方?

    虚拟内存、栈、全局变量等用户空间的资源,还包括了内核堆栈、寄存器等内核空间的资源。

  8. 上面哪个资源的切换效率更低?

  9. 为什么虚拟内存的切换效率更低?

    因为切换后 TLB 无法被命中

  10. 常见的排序算法?

  11. 堆排序原理?

  12. 归并排序原理?

  13. LRU缓存?为什么要链表?为什么要用哈希表?为什么要用双向链表?既然哈希表中已经存了 key,为什么链表中还要存 key 和 val 呢,只存 val 不就行吗?

  14. linux 命令,如何查看主机 CPU 核数?如何查看内存还剩多少?

  15. 如何查看哪个进程正在监听 80 端口?

  16. netstat -n 是什么意思?-a 是什么意思?-p 是什么意思?

  17. TCP 为什么要三次握手和四次挥手?

  18. 为什么 TCP 第二次握手的 SYN 和 ACK 要合并成一次?

  19. SYN Flood 的原理?有哪些防范的方法?

上面三个问题问了十多分钟。看起来简单,但面试官会顺着你的思路一直往下问,问得特别深,差点给问崩了。

下面问了几个 C++ 的问题。字节不是用 go 吗?

  1. 智能指针有哪些?主要解决什么问题?

  2. 指针和引用的区别?为什么要引入引用?好处有哪些?

  3. 重写和重载的区别?

  4. 手撕:二叉树的最近公共祖先(最后只剩十分钟,要求十分钟之内写出来)。

三面|1h

  1. 自我介绍

  2. 聊项目

  3. 问了一会儿八股,具体问题忘了。

  4. 如果你设计一个视频网站,所有用户都可以上传自己的视频,也可以观看别人的视频。你作为后端要怎么设计?用户目录怎么设计?

这个问题聊了20分钟。因为没做过相关的东西,感觉答得一般。刚开始答了很多个方面,感觉面试官都不太满意。但是面试官会一直引导你回答。最后反问的时候面试官也说这个问题没有固定的答案,这个问题涉及的方面非常多,从接入到怎么去存储以及怎么去实现一些具体的逻辑功能,这些方面很难一下子就能想出一个很全面方案。问这个问题主要还是想看看我的一个思考的过程。

  1. 手撕:回文链表

HR 面|12min

  1. 自我介绍

  2. 家在哪?

  3. 为什么选择这个专业?

  4. 有没有校外实习的经历?

  5. 研究生期间的成绩?

  6. 参加过什么计算机相关的比赛?在团队中担任什么角色?

  7. 为什么选择我们这个部门?

  8. 对我们的部门有没有什么了解?

    大概说了一下,然后 HR 给我介绍了一下这个部门。

  9. 想去什么城市?

  10. 有没有考公的想法?

  11. 职业规划是怎么样的?

  12. 有没有在面其他的公司?BAT 都有投吗?

  13. 能不能提前来实习?

  14. 反问:后续流程是什么?

内部讨论后,过几天会给答复。如果没过就等其他的部门来捞,过了的话会先发意向书,十月份左右谈薪资。有可能还有加面的情况(忘记问这个加面是好还是不好了,网上有的说会刷人,有的说是看看你能不能拿更高的等级)。

评论 (122)