当前位置:   article > 正文

字节跳动|后端|提前批|一面+二面+三面+HR 面_字节加面是什么原因呢

字节加面是什么原因呢

一面|1h

  • 自我介绍
  • select、poll、epoll?
  • epoll的两种触发模式?
  • TCP三次握手过程,有什么状态,状态机如何变化?
  • TCP握手的目的有哪些?
  • 什么是 TIME_WAIT 状态,为什么需要 TIME_WAIT 状态?时间是多久,为什么?
  • TCP 和 UDP 的区别?
  • TCP 拥塞控制?慢启动的时候窗口在什么情况下会增长?为什么会呈指数增长?
  • Linux 中一个进程的虚拟内存分布长什么样?内核空间+用户空间(6 种不同的内存段)。
  • 为什么要用虚拟内存?
  • 虚拟地址映射为物理地址的过程?
  • 进程和线程的区别?哪些资源是线程共享的,哪些是线程独占的?
  • 使用线程有哪些好处?
  • 使用线程有哪些坏处?
  • 进程有哪些同步的机制?
  • 协程的实现原理?无栈协程和有栈协程?独立栈和共享栈?
  • 什么是稳定排序?
  • 聊项目,难点,怎么解决?
  • 手撕:数组循环右移。将一个长度为 n 的数组,循环右移 k 位,要求时间复杂度为 O(n) 空间复杂度为 O(1) 。

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

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

二面|1h

  • 自我介绍
  • 进程有哪些状态?
  • 进程的调度算法?
  • 进程间的通信方式?
  • 进程上下文切换做了哪些事?流程是怎么样的?
  • 进程在哪些场景会进行上下文切换?
  • 上下文切换为什么资源消耗会比较高?消耗在什么地方?

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

  • 上面哪个资源的切换效率更低?
  • 为什么虚拟内存的切换效率更低?

因为切换后 TLB 无法被命中

  • 常见的排序算法?
  • 堆排序原理?
  • 归并排序原理?
  • LRU缓存?为什么要链表?为什么要用哈希表?为什么要用双向链表?既然哈希表中已经存了 key,为什么链表中还要存 key 和 val 呢,只存 val 不就行吗?
  • linux 命令,如何查看主机 CPU 核数?如何查看内存还剩多少?
  • 如何查看哪个进程正在监听 80 端口?
  • netstat -n 是什么意思?-a 是什么意思?-p 是什么意思?
  • TCP 为什么要三次握手和四次挥手?
  • 为什么 TCP 第二次握手的 SYN 和 ACK 要合并成一次?
  • SYN Flood 的原理?有哪些防范的方法?

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

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

  • 智能指针有哪些?主要解决什么问题?
  • 指针和引用的区别?为什么要引入引用?好处有哪些?
  • 重写和重载的区别?
  • 手撕:二叉树的最近公共祖先(最后只剩十分钟,要求十分钟之内写出来)。

三面|1h

  • 自我介绍
  • 聊项目
  • 问了一会儿八股,具体问题忘了。
  • 如果你设计一个视频网站,所有用户都可以上传自己的视频,也可以观看别人的视频。你作为后端要怎么设计?用户目录怎么设计&
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/734662
推荐阅读
相关标签
  

闽ICP备14008679号