2021字节跳动后端开发面经总结
21872
2020.10.17
2020.10.18
发布于 未知归属地

e3c38399095302db6df26b11df9305c4.jpg

基本情况

先说下我的基本情况,985硕士,非科班(电子类专业),面试后台开发岗位,语言是Java。字节春招实习4面,秋招三面,运气比较好,均拿到offer。


知识点覆盖总结

众所周知,字节的面试是比较难顶的,考察的知识点包括

  • 语言基础(虽然字节基本不用Java,但面试官对Java也都有了解也会问Java基础知识点);
  • 数据库原理和应用,手写SQL;
  • 中间件原理和应用,包括redis,mq,rpc等;
  • 计算机网络
  • 操作系统(这个可能面试官考虑到我是非科班吧我面试时遇到的不多)
  • 开放性的系统设计题(一定会有)
  • 智力题/数学题
  • 算法题(重中之重!)

面试流程

春招是一天一口气面了三面,从下午5点面到8点,一场大约是50min,效率非常高。秋招是每次hr提前约,因为我一般都约在晚上,所以都是一次一面。

春招

一面

• mysql索引介绍一下
• B+树:为什么叶子节点之间要用连接?
• 索引最左匹配原则知道吗,为什么?
• mysql主从结构怎么复制?
• 由于延迟问题,客户端可以选择就连接master吗
• zookeeper节点类型?项目用什么节点?
• zookeeper分布式锁?实现选举功能?
• http请求从输入url开始都经过什么过程?
• DNS域名解析
• http拥塞控制
• http版本问题
• 多线程,为什么要多线程?为什么能多线程?(cpu分片)
• 为什么要控制线程数,不能一直创建新线程?
• 线程池原理
• 算法:Z字打印二叉树
• 手写单例模式,为什么用volatile? 为什么锁类this.getClass()

二面

• zookeeper内部选举原理
• 订单库存问题怎么解决竞争的冲突的
• redis zset底层怎么实现的?如果让你设计你怎么设计?
• Map动态扩容怎么实现?
• http拥塞控制
• 如果一个客户端和服务器建立了TCP连接(三次握手之后),之后他就宕机了,服务器会知道吗
• 算法题:股票买卖,只能买卖一次
• 智力题时间太久有点其不清了

三面

• 全局唯一递增id怎么实现?(id要是稀疏的,64位)
• 股票买卖,买卖两次
• 智力题:有一群狼和一只羊,狼吃了羊会变成羊,最后一开始这只羊会不会被吃掉?
一般字节就三面,但我三面表现的有点一般,虽然都答出来了,但是在提示下做出来的,写代码的过程也有点坎坷,所以有了四面

四面

手写SQL和一些基础问题

秋招

字节如果春招过了,秋招是可以直通终面的,但因为我换了个城市所以就重新面了,不过会有之前春招的面试记录的,在加上面的部门竞争也没那么大所以我感觉我秋招问的好像相对容易一些?

一面
  • 了解哪些List 各有什么特点

  • hashmap实现,为什么不安全

  • 如果让你实现一个扩容时也可读写的Map怎么实现?

  • concurrent里用到了什么锁?cas和synchronized都有

  • synchronized锁升级的过程?

  • 讲项目?项目追问中间件原理。

  • 消息通知推拉模型?

  • 算法题:
    1.链表 1 2 3 5 4 6 7 把奇数排在前面。//面试官提醒我要写注释 注意代码习惯
    2.微信红包?如何生成,简单写一下生成的方法?

二面
  • 算法题
    扔骰子,随机产生1-9
    z打印二叉树

  • http和https tls处于哪一层(7层中的哪一层)

  • 手写SQL:统计表中每小时的记录数

  • 健康码的作用?扫码过程发生了什么? (这里我感觉主要看思考问题的过程)

  • 消息队列:

  • 重复消费问题,如果consumer消费了,但它没发反馈就挂了,怎么办?

  • 如何做幂等,如果用redis用什么数据结构存?

三面
  • 发消息时 网络传输过程中(只说应用层)信息怎么保证不被窃取

  • 密钥泄漏怎么办?

  • redis最多能存多少数据

  • redis数据结构有哪些 使用时注意什么,hash底层了解过吗

  • mysql 索引使用时注意什么?or 索引失效,那怎么办?

  • 智力题:类似小白鼠试药的问题

题外话

我觉得字节是面试体验最好的公司之一,尤其是在我春招还是个面试小白的时候,面试官会引导思考,感觉一场面试下来能学到很多,当我很多东西没接触过,自己脑洞大开说出想法的时候,并没有被否定,真的很感谢某几位面试官。
开放性的设计题我觉得答好了真的很加分,大家平时多积累吧。
最后祝大家都早日上岸!

评论 (4)