---
title: 字节跳动后端开发面经（已意向）_笔经面经_牛客网
shortTitle: 字节跳动后端开发面经（已意向）_笔经面经_牛客网
description: 先讲一下时间线吧，7.7号投递 -> 7.17一面 -> 7.21二面 -> 7.28三面 -> 8.2HR面 -> 8.13OC -> 8.15意向
tags:
  - 优质文章
category:
  - 牛客
head:
  - - meta
    - name: keywords
      content: 应届生,应届生求职,校园招聘,校招,春招,秋招,实习,笔试,笔试题库,面试,面试题库,程序员,程序猿,程序猿,产品经理,PM,运营,游戏策划,软件工程师,java,c/c++,php,python,算法,机器学习,人工智能,数据挖掘,数据分析,数据分析师,前端工程师,测试工程师,测试开发工程师,运维工程师,安卓工程师,ios工程师,android,硬件工程师,电气工程师,嵌入式工程师,汽车制造研发,审计,会计,财务管理,市场营销,品牌管理,金融,四大,法务,销售,行政,人力资源,hr,管培生,地产,国企,银行,实习,实习生,招聘,找工作,牛客网
---

**先讲一下时间线吧，7.7号投递 -> 7.17一面 -> 7.21二面 -> 7.28三面 -> 8.2HR面 -> 8.13OC -> 8.15意向**

**因为楼主没有录屏，所以可能有些遗漏。**

### **一面 7.17（60min）**

一面的面试官给我留下了非常好的印象，面试开始时告诉我他有两个显示器，所以有时目光不会直视我，并且他会做一些必要的记录，如果我回答完他没有立即回应的话，希望我能理解。

1.自我介绍（介绍实习项目）

2.根据我的实习项目对我进行提问，问的较为仔细，需要对自己的项目有较深的理解

3.OSI7层网络了解吗？说说具体有哪些层，并且每一层起到什么作用？互相之间如何协作？

4.应用层，传输层，网络层，数据链路层都有哪些协议？它们都起到了什么作用？

5.MAC地址在传输过程中会改变吗？

6.CSMA/CD协议作用于哪一层？如何工作的？如何降低碰撞几率的？

7.TCP三次握手，四次挥手聊一聊？

8.进程，线程，协程了解吗？说说他们的特性和区别。

9.select，poll，epoll的区别？

10.进程间的通信方式有哪些？共享存储的优点和缺点分别是什么？消息队列与管道相比有什么优势？

11.JDK8默认使用的垃圾收集器有哪些？新生代为什么普遍采用复制算法？老年代为什么普遍采用标记清除算法？

12.虽迟但到的算法题环节：

（1）接雨水

（2）[链表](/jump/super-jump/word?word=%E9%93%BE%E8%A1%A8)每k个进行反转



### 二面 7.21（70min）

1.自我介绍（介绍实习项目）

2.也是针对项目进行提问，相较于一面更为深入，例如会问为什么选择使用这项技术？有没有和其他技术进行过对比？可扩展性如何？

3.TCP和UDP区别是什么？TCP依据什么来保证可靠性？TCP是面向什么进行传输？

4.HTTPS和HTTP的区别？HTTPS协议链接建立流程是什么？HTTPS中的S代表什么？介于拿两层之间起作用？对于应用层透明吗？

5.数据链路层为网络层提供了哪些服务？ARP协议是哪一层的协议？

6.ICMP报文能起到哪些作用？分别是如何起作用的？

7.虚拟内存了解吗？有什么作用？

8.讲讲请求分段，请求分页，请求段页的实现方式及使用场景

9.请求分页的具体工作流程能不能讲讲呢？页面置换算法有哪些？（其中我说了LRU，结果后面算法题出的就是LRU😂）

11.你平时喜欢使用什么关系型数据库呢？（回答的是mysql）

12.mysql一般使用哪些引擎呢？

13.Innodb和myisam的区别是什么呢？哪种情况下该使用innodb，哪种情况下使用myisam呢？为什么？

14.当查询数据库时使用limit 10000，10有什么弊端？有什么好的解决方案吗？

15.什么时候索引会失效？能够使用>和>=的时候你会使用哪一个？为什么？

16.当查询条件有xx == null 时索引一定会失效吗？

17.执行计划了解吗？

18.智力题

有36匹马，6赛道，每条赛道之间的名次不可知，只能获知单条赛道马的名次，问最少比多少次能知道前三名？

19.算法题

（1）LRU（后面又让改成带过期时间的LRU，我使用的惰性删除）

（2）查找[旋转数组](/jump/super-jump/word?word=%E6%97%8B%E8%BD%AC%E6%95%B0%E7%BB%84)（时间复杂度要求O(logn)）



### 三面 7.28（70min）

前两面面试官询问Java方面的知识点比较少，三面面试官问的比较多

1.自我介绍（ 介绍实习项目）

2.针对实习项目和简历中的项目展开地毯式考察（花费大概25min）

3.HashMap如何是如何实现的呢？JDK8HashMap的散列算法能不能从源码层面来介绍一下？为什么扩容是两倍呢？自己手写实现过HashMap吗？

4.我看之前答垃圾收集器答的蛮好的，你能介绍一下CMS垃圾收集器的优缺点吗？为什么CMS会将serial old作为后备垃圾回收器？

5.对象只会被分配到堆吗？（答：不是，还有可能会栈上分配）

6.什么时候会进行栈上分配？

7.ThreadLocal的作用？如何实现？会不会出现内存泄漏？如何避免内存泄漏？

8.Spring AOP 的作用？如何实现的？

9.Spring 自动注入如何实现？（这个涉及的方面就比较多，讲了好久）

10.了解SSD的原理吗？（答：不知道，只知道磁盘，所以就讲了下磁盘存储原理和寻道算法）

11.操作系统是如何判定内存访问越界的？

12.访问越界后操作系用会如何进行处理？

13.用户态转换到核心态的过程？

14.进程切换过程？线程切换过程？

15.当我们ping的时候发送的是什么包？

16.TCP协议头部长度是使用哪个字段？如何计算的？

17.TCP如何实现流量控制和拥塞控制？

18.TCP的滑动窗口移动流程你能具体讲讲吗？

19.当我们输入一个SQL查询语句时，mysql数据库引擎是如何执行并得到最终结果的？（答：先查询缓存->解析器->优化器）

20.智力题

（1） 一个桶能存储5升水，一个桶能存储3升水，如何操作能量出4升水？

（2）两根质地不均匀的木头，从一端烧到另一端需要60分钟，如何操作能准确量出15分钟？

21.算法题

你之前说了解析器，那我现场出一道算法题吧，我会输入一个SQL语句，你需要将where后面的查询条件解析为一棵规则树

例如：where (a == b and c == d) or (e == f or (g == h))

我需要生成一棵树，结构为

or

\- and

 - a == b

 - c == d

\- or

 - e == f

 - g == h

楼主运气比较好，肌肉记忆写出来了，面试官几个测试用例也通过了，算是有惊无险。



### HR面 8.2 （30min）

询问实习期间的挑战和解决问题的思路，就拉拉家常，如实回答就好～。

HR面完后，HR加了我微信，长达11天的审批流程后终于OC。

### 总结

总的来说，字节跳动后端开发考察具体语言知识是比较少的，计算机网络，操作系统原理考察的比较多。智力题也会进行考察可以事先准备下。算法题我的体验是每面都有一道Hard，不过是比较常见的（除了最后一面）。

面试体验也十分的好，可能是我运气好，没有遇到故意刁难的面试官，特别是最后一面的面试官，一直在呵呵的笑（很友善），搞得我也一直在笑，哈哈。

今年秋招十分的不容易，希望这篇面经能帮助到大家～



对了，楼主base成都

>转载链接：[https://www.nowcoder.com/discuss/1017201](https://www.nowcoder.com/discuss/1017201)，整理：沉默王二
