春招字节跳动广告日常后端实习生3+1面

最近比较闲,整理文件发现一篇远古面经,分享一篇今年的春招字节跳动后端实习面经。

背景

双非非科班非统招大三,Java,投的广告系统的后端开发日常实习。

面试时间2021.3.28-2021.3.31日

一面(45min)

1.场景题(30min)

  • 先聊聊对抽象的理解
  • 然后设计老师、学生、班级、作业,聊设计的思路,后面让设计成表。(聊了好久,说万一我要加一个职务老师啥的,我记得抽象工厂好像有,但是没学过,就没说)
  • 查询某个班级查询出重名的学生(很简单的分组+having),当时提示了也没写出来,sql太弱,没写过,没写出来,就尴尬的下一题了(感觉凉了)

2.TCP三次握手、四次挥手、挥手三次可以?

3.JVM内存模型(线程私有和线程共享来答)

4.堆区模型(老年和年轻代),当时脑子抽了,没答出来,自然也不会问下面的gc了,当时感觉肯定凉了

5.排序算法可以?我答可以,然而他跳过了!直接做题了!(真想让他让我手写个堆排、快排、归并来证明下自己了)

6.算法题:

  • 两个无序数组,前k大。(topk)当时忘记假装思考了,一下快敲完了,面试官不让写了(敲的太快看出来做过了)。
  • 两数和。(lc第一题)假装思考下,简单调了下,哈希一遍过。
  1. 反问:对我评价?

整体还行,sql不强,JVM应该懂,但是我没回答上来?算法能力可以。(我觉得主要是从调试和敲代码的速度看出来的)

二面(1h20min)

二面全程都是开放性问题,感觉在聊天,感觉面试官对我很满意,思维上的

1.数据结构怎么学的?本科还是算法导论?

  • ???,学算法谁看算法导论啊,不全是垫桌子的嘛,全证明,不如叫如何优雅的证明算法是正确的

2.你觉得哪种数据结构最美?有趣?

  • 肯定是回答哈希表啊,线性表+树+空间换时间思想,能聊很久的
  • 介绍下哈希表
  • 冲突了怎么办?(开放寻址法、拉链法、二次哈希)
  • 二次哈希继续冲突?(继续从三个解决冲突的方法继续套)
  • 你喜欢什么方法?哪种方法工业应用?(拉链)
  • hashtable的如何扩容?(开新数组,遍历哈希表,每个元素从新hash一遍)
  • 数组很大,线上不允许那么大的时间等扩容完成?(多线程,分治思想,每个线程负责数组的部分区域扩容)
  • 每个线程负责1-20,20-40这种好还是每个线程负责1,2,4这样好?(我说跳着应该好,左移运算符快一些),面试官说cpu加载数据一次加载连续的空间,所以第一个好,位运算和+1的效率一样。

聊完面试官说工程上确实这样做的(运气啊,纯粹是项目多线程下载也是这样的思想做的)

3.输入一个URL到渲染页面发生了什么?(越详细越好)

  • DNS,顺便说了下缓存的思想,给root服务器压力减小
  • TCP层添加TCP头部,(被打断问端口是做什么的)
  • IP层加IP头
  • 下面的层都不会,我说的是直接一层一层加包,到了目标主机一层一层拆包
  • TCP层解包,分发给对应进程

4.TCP的滑动窗口?(保证有序,可避免重复发送,记录接收了哪些,确认机制)

5.窗口越大越好?(接收不过来,不行,有流量控制)

6.TCP的拥塞控制?(四个算法)

7.端口号为什么最大65535?

  • 我答的是os给进程分配资源,所以要限制进程数,所以端口号最大65535
  • 面试官说TCP头部的大小决定的

8.quic知道?(不知道,后面查了下是谷歌基于udp改进的可靠传输协议)

  • TCP写死了拥塞控制慢,有udp和tcp,udp不可靠,tcp慢,如何解决?(假装思考了下,说改进udp,然后不让说了,说我判断能力很不错)

9.什么是索引?(空间换时间思想,增删改查快)

  • 哈希可以用?(有序性,不行)
  • 不用哈希,用什么?(BST - > AVL(红黑树) -> B树 - > B+树)从左到右推了一遍,时间复杂度,缺点,都说了

10.为什么工业界还是有些用红黑树?(我说是数据量小,树矮,编码难度,面试官说B+树的分裂等等)

11.Java内存模型(线程私有和线程共享)

12.GC算法?

  • 可达性分析和程序计数
  • 标记清除,标记整理,复制算法,什么是内存碎片?
  • 年轻代和老年代

从上到下说的,每个算法都说了优缺点和使用场景

13.STW时间太长,怎么优化?(从背的CMS收集器入手)

  • STW,从gcroot遍历一小部分
  • 多线程并发标记
  • STW,修改部分中间改变引用的对象
  • 清理垃圾

14.STW,修改部分中间改变引用的对象,如何存储?如何做的?

  • 这个真不会,当时乱扯,就说了改变引用对象的指针,就是和图的连通性。当时扯了好半天
  • 面试官说发生变化的对象视为gcroot即可,不能错杀

15.算法题(34min)

  • 二叉树层序遍历的Z字形(lc原题了),判断下层的奇偶行即可。
  • 翻转链表第l到第r个元素(lc原题了),遍历到l - 1,l - r翻转即可。
  • ACM模式,自己建树和建立链表,c++不会构造函数,写了好半天,其中百度了下构造函数,最终还是用Java写的,很多API都是面试官提示的,俩垃圾题写了34分钟

16.反问:什么部门?我和其他人的比较?

面试官说大部分面的社招的,无法评价。

总结:二面感觉面试官对我蛮满意的,全是那种引导性的问题,开放性的问题讨论,面试官也很客气。

三面(1h leader面)

面试官迟到了,进了房间也不主动发视频,竟然是先在聊天地方打字hello?还是我发起面试的。面试官短发,虽然戴眼镜,看起来是个大汉,顿时有点慌。

我的项目是简单仿照tomcat写的http服务器+servlet容器,这面大部分都是聊项目,因为数据库和网络已经没聊了。

1.tomcat设计?

  • 多web项目和servlet容器
  • http服务,请求解析
  • servlet生命周期管理,单例模式
  • 连接NIO优化

2.5行写tomcat

  • 我说初始化服务器,扫描context,初始化所有servlet,并执行init方法。
  • 服务器工作,接收请求
  • 销毁servlet,执行destory方法。

说完反问你5行能写这么多?

我说调用函数啊,底层可以写5000行,面试官笑了

3.继续问tomcat核心功能?(监听端口,解析http请求)

4.继续聊具体的代码,大致就判断下我是否真的做了,问了下用的什么api

5.http请求格式?(请求行,请求头,请求体)

6.请求行和请求头具体?

7.长连接短链接?

8.如何管理servlet?(每个项目管理自己的servlet)

9.如何new Servlet?(开始我说解析文件,后面反应过来问反射)

10.不同项目,引用jar包不同版本?(我说类加载器来new的,每个项目有自己的类加载器加载)

11.聊到了双亲委派机制

12.classLoader如何管理jar包?(我说双亲委派机制应该解决不了,只是一个标准,面试官笑了,过了)这个问题确实我简单看过博客

13.io?(阻塞io,非阻塞io,异步io)

14.nio bio aio?(简单聊了下同步非同步异步)

15.三个io区别?(我说底层用的select、poll、epoll,主要从数据结构的角度说的)

16.算法题(30min)

  • lc77题(虽然做过,但是是我做过最难的dfs搜索了,早已经忘了怎么写了,只记得要传一个参数start,从start开始搜,当时其实完全抱着调不出来的心态乱调,最终竟然过了....)
  • 当时调试的过程中,面试官也说bug如何调试?(当然是cout输出啊,但是递归cout的我自己没调过)
  • 面试官偶尔也提示,调好了后,做出来了,面试官都笑了

17.聊了聊和内推学长的关系等等,允许实习?(肯定可以)什么时候可以过来?(当听到这,我就知道稳了,我说一周左右)

18.反问:

  • 我是非科班,和其他校招生的比较,评价?

人挺聪明,从写代码和捋清楚做的事情来说,看得出逻辑思维不错,看面评说我基础知识了解的并不多,但是字节更看重应用,说我如果想干这行,虽然聪明,但是应该补足一下基础知识。

  • 未来发展?(其实想学学长的问题,但是当时面试官理解成真的是未来发展,我其实想问的是技术方面)

面试官说了一大堆未来是不确定性。

  • 最后我说第一面真的是发挥不好,当时紧张了,面试官直接笑了。顺便吹了一下自己数据结构的基础扎实,topk如果让我手写堆,问题也不大。

HR面(20min)

电话面,很常规,果然HR的声音都很好听。

总结

因为是实习吧,不太难,整体问的挺常规的,算法也都是mid,而且也都是高频题,整体来说运气不错,而且面的也很常规。

#字节跳动实习##实习##面经##校招##字节跳动##Java工程师#
全部评论
电子信息工程也可以叫非科班吗?😂我们这种天坑专业哭了
1 回复
分享
发布于 2021-08-05 10:42
coding的时候还能百度吗😂
1 回复
分享
发布于 2021-08-16 16:38
英特尔
校招火热招聘中
官网直投
校招和实习问的似乎也差不多😁
点赞 回复
分享
发布于 2021-08-02 16:47
老哥啥专业
点赞 回复
分享
发布于 2021-08-03 00:40
楼主算法是c++写的吗但是技术栈是Java,看到cout😂
点赞 回复
分享
发布于 2021-08-23 16:34
老哥是大三的,为啥还是非统招,成人本科那些不是不分大几大几嘛
点赞 回复
分享
发布于 2021-08-24 18:15
看完以后真的觉得,今年形式的确是差,同样是找实习,三个面都答的不错也被刷
点赞 回复
分享
发布于 2022-04-17 19:34

相关推荐

6 86 评论
分享
牛客网
牛客企业服务