字节跳动后端开发面经

7月份提前批面的,7月底拿的offer,前后一共面了5面,第三面的时候算法题做得太久了,虽然最后写出来了,但是还是挂了,最后马上被捞起来换了部门又面了两面,然后过了。最近有空分享出来,可能有点晚了,不过希望能帮到部分同学。

一面

  1. 无序数组第K小的数字(堆O(nlogk)和快速选择O(n))
  2. HTTP状态码的含义, 200、400、501,分别说说1xx,2xx,3xx,4xx和5xx状态码的意义
  3. HTTPS和HTTP的区别,HTTPS的连接过程,非对称加密为什么比对称加密性能低
  4. 了解过加密算法吗(没有,跳过了)
  5. TCP三次握手过程,为什么是三次而不是两次或四次
  6. TIME_WAIT和CLOSE_WAIT的含义和区别
  7. TIME_WAIT时长为什么是2MSL而不是MSL
  8. 画出以下类的对象内存模型
class A {
public:
  virtual void foo();
private:
  int a;
};


class B : public A {
public:
  void foo();
private:
  int b;
  int c;
};
  1. 处理高并发有哪些方法
  2. epoll和select的区别,使用线程处理并发一定比使用epoll差吗
  3. Mysql的索引类型?主要说下B+树索引
  4. MapReduce的Map和Reduce怎么做的?(简单说了下wordcount,再难点就不会了)
  5. // 编号乱了


二面

  1. Mysql索引为什么要用B+树,有什么好处?
  2. Hash索引和B+树索引各自的优劣
  3. 单链表反转变体, 两两一组进行反转(1->2->3->4->5 编程5->3->4->1->2)
  4. 8皇后问题共有多少种解法

三面

  1. Epoll的水平触发和边缘触发的区别,如何处理边缘触发模式下数据的读取
  2. 浏览器访问一个url的过程
  3. redis有多少种数据类型,有序集合的底层实现,插入和查找的复杂度
  4. 一个数字串删除指定个数的数字字符,剩下的组成一个最大的数(3051, 若删除1个,则为351,删除2个则为51,删除3个则为5)

四面

  1. Linux的内核空间和用户空间的区别
  2. fork具体发生了哪些事情
  3. 使用random_int5()实现random_int7()
  4. 对链表进行排序,我给出归并排序的方法,又问不使用递归如何做归并排序,还有其他方法可以对它排序吗,回答冒泡排序,又问如何优化冒泡排序,如果链表部分有序如何优化?
  5. LRU ***的实现
  6. 4和5挑一个写。

五面(这一面基本没做什么吧,应该是看我前面也面了好多了,改问的也问了,就叫我说下前面有哪些地方没答好之类的,然后问了个智力题,我思考了两分钟解出来了,这个很加分)

  1. Mysql为什么使用B+树作为索引
  2. Redis有序集合为什么使用跳表而不用B+树
  3. 100个小球,其中红色50个,蓝色50个。有两个抽屉,每个抽屉都足以放下100个球,将这100个球放到这两个抽屉中,另一个人选其中一个抽屉并从里面随机拿一个球,如何分配才能使拿到红球概率最大。
#面经##字节跳动#
全部评论
是个狼人
点赞 回复
分享
发布于 2019-09-20 17:29
我科的大佬
点赞 回复
分享
发布于 2019-09-20 17:40
联想
校招火热招聘中
官网直投
最后一题挺常见的
点赞 回复
分享
发布于 2019-09-20 17:47
使用线程处理并发一定比使用epoll差吗和三面1题求解答😂
点赞 回复
分享
发布于 2019-10-31 18:23

相关推荐

4 75 评论
分享
牛客网
牛客企业服务