字节跳动 · 国际支付

后端开发实习生一面、二面、三面、四面面经

完整信息

157 条问法 · 86 道题

本篇目录

前言:

自从去年年底去途游实习后,好久好久没有更新帖子了。一是因为上班属实很忙,在途游时工作作息是9 10 5,目前在字节这边是 10 10 5(不过我比较懒,早上一般快11点才到);二是人不知道咋滴变得非常懒,到了家只想躺,周末只想睡觉。目前秋招提前批和正式批陆陆续续都开了,最近也着手于复习和准备面试。暑期实习当时面试了有二十多场,在这里逐渐和大家分享一下面经,正好起到回顾知识和梳理的作用。

暑期面试面字节还是头一回,之前日常实习约过几次面试,当时因为准备的不充分都婉拒了。约面的TimeLine如下:

3.24 Tech一面

3.27 Tech二面

4.01 Tech三面

4.09 Tech四面

4.13 HR面

4.15 Offer

面经如下:

字节国际支付 后端开发 一面

  1. 我看到你有一个项目经理是铁路票务系统,对吧?对,然后这个是你们学校的项目吗?
  2. 责任链模式是怎样的?
  3. 责任链模式的特征是什么?
  4. 除了这个,你还了解其他的设计模式吗?
  5. 讲一下单例模式,它的好处是什么?
  6. 单例模式有两种加载方式,讲一下
  7. 你还了解其他的设计模式吗?
  8. Agent 提效平台式在什么样的场景下,做的这个东西
  9. 你有了解过PostgreSQL这个数据库吗?
  10. PostgreSQL相对于MySQL的优势是什么?
  11. 底层的实现方案有没有看过?
  12. 讲一下实习项目吧,我看你个人产出这一块儿实现了一个黑白名单管理工具模块,这个是做什么的?
  13. 最近的100个玩家是怎么计算出来的?
  14. 讲一下你了解的排序算法
  15. 什么叫做稳定的排序算法
  16. 选择排序了解吗?
  17. OK假如这样的一个场景,我在100万的数据当中,我要找到前十位,用什么排序比较好呢?
  18. 快速选择的时间复杂度是多少?
  19. 100条数据当中我要选第N个数据,这种是用哪种方式比较好?
  20. OK, 你是计算机本科生对吧?学哪些课程?DB学过吗?
  21. 学过数据结构对吧,讲一下Dijkstra算法
  22. 他能解决什么问题?
  23. 我们聊一下操作系统的相关的内容。进程和线程有什么区别?
  24. 用户态线程和内核线程有什么区别?
  25. 你去操作打开一个文件的过程,这个到底总是怎么做的?从你开始操作打开这个文件,你写代码打开这个文件的过程,从上到下来讲一下。
  26. OK,进程大概有几个状态,以及他怎么切换的?
  27. 你刚才讲运行态,就从运行到阻塞是会经过什么样的条件?
  28. 进程之间的通信方式大概有哪些?
  29. 哪个通信方式最快呢?
  30. 讲一下进程调度的算法
  31. OK,先来先服务算法有什么缺点?
  32. 优先级调度算法讲一下
  33. 你有学过一些计算机网络的基础吗?我们聊一下TCP四次挥手的过程
  34. OK, 这个60秒钟的等待时间可以调吗?
  35. 那假如说我有一个高并发的场景,开始频繁进行TCP的握手挥手,那他有可能会发生什么问题?
  36. 什么叫做长连接?
  37. HTTP了解吗?有哪些状态码呢?
  38. HTTP和HTTPS有什么区别了解吗
  39. 中间用到的加密算法了解吗
  40. 我记得大学有门课是专门讲密码学,讲加密的,你有没有去选修?
  41. 什么叫做非对称加密?对称加密呢?中间的过程大概描述一下
  42. TCP粘包有了解过吗?
  43. 还有其他的方式区分粘包吗?
  44. 这个sequence代表什么含义?发送包的次序怎么解决粘包问题呢?
  45. DB学的MySQL对吧,MySQL有哪几种引擎?
  46. 数据库的隔离级别有哪几种?
  47. 我们默认级别为什么是可重复读?解决了什么问题?
  48. 什么叫做MVCC多版本并发控制,解决了什么问题?
  49. MySQL的锁有哪些?
  50. 临键锁是什么?能解决什么问题?
  51. MySQL的索引结构是怎么样的?
  52. OK,假如说有一个主键索引,它是属于聚簇索引还是非聚簇索引?
  53. 那么什么是非聚簇索引?
  54. OK,那么你怎么判断你写的SQL,是否用到了索引?
  55. 你了解最左索引匹配吗?
  56. OK,咱们写个题吧(leetcode T72 编辑距离)
  57. 写完了之后让我讲了一下详细思路
  58. 我看你是用C++写的,你是平时上学的时候写C++比较多吗?
  59. 那我们聊一下C++吧,类里面有构造函数,构造函数可以有多个吗?
  60. 讲一下重写和重载是什么?
  61. 除了构造函数,还有个机构函数。然后我们在那个父类和子类当中,假如说一个子类析构,他是先析构谁再析构谁。
  62. 那构造时候的顺序呢?
  63. 反问

面试结束后两小时,约二面

字节国际支付 后端开发 二面

  1. 自我介绍
  2. 当前是否在北京?
  3. 介绍一下实习部门的总体业务情况
  4. 海外的业务有哪些?
  5. 你所在的部门,和游戏的业务是什么关系?
  6. 聊天邮件小组的业务是什么?
  7. 你做的这一块属于哪个功能?
  8. 你介绍一下,客服系统这边做了哪些功能开发?
  9. 这个线程是怎么提起来的?是有什么单独的服务吗?会不会挂掉?如果挂掉之后,解封会不会失败?这块怎么设计?
  10. 等一下,你按照我的思路来。你不是有个异步线程吗?这个线程挂掉,不是会影响你的黑名单解封吗?
  11. 兜底机制是怎么出现的?怎么设计的?
  12. 对,我现在问的是,你这个定时扫描的任务给挂了,你怎么处理?
  13. 刚才你提到使用了分布式锁,这个锁在哪?
  14. 就是你这里为什么会涉及到分布式的问题?把这个问题解释清楚,就是哪里需要去解决这个分布式的问题?
  15. 重复解封会带来什么问题吗?解封的用户是否那状态就是存在这个ZSet中是吗?
  16. 那么,ZSet中有,就代表没有解封,是这么理解吗?
  17. 介绍一下你们使用的数据库,是MySQL吗?
  18. 解释一下,你们Redis和MySQL中分别存了什么样的数据,有哪些业务语义?
  19. 需要保证的是,你的异步线程从ZSet中扫出数据之后,去MySQL修改数据是原子性的是吗?
  20. 你解封的时候,是更改用户状态表里的字段是吗?
  21. 直接实现原子操作,还要加分布式锁吗?这里我没太听明白。你们这个状态更新mysql这个State状态的时候,你们用的相当于 update 那个字段是吗?
  22. 诶,那我当前user已经处于解封状态了,我再将其 update 解封,这样好像也没什么问题诶,业务上会有什么影响吗?
  23. 诶,你们在海外也有业务的话,你们在海外有机房吗?
  24. 那么你负责的这套服务不属于海外业务是吗?
  25. 你这个AI Agent提效平台是为了解决什么问题?
  26. 这个和你的实习经历有关系吗?
  27. 那你们这个平台给谁用的?
  28. 最后上线了吗?你们有没有在用?
  29. 这个项目是另外开发的意思吗?
  30. 你们的workflow是自己编写的吗?还是借鉴网上成熟的方案?
  31. 来个系统设计题吧,设计一个短链接,请你讲一下要考虑的点?
  32. 你能想到这个服务都应该有什么功能吗?
  33. 你可以这样去想,首先你想一想这样一个短链接的服务,他需要具备什么功能?你再去想,要实现这个功能,需要什么样的技术能力?如果你自己想不出来需要具备什么功能,我可以把功能告诉你。然后基于我说的功能,再去想这个系统应该如何实现?这个可以吗?
  34. 行,那我问个问题。这个用户身份鉴权,怎么去实现这样一个功能?
  35. 存储的长链和短链对吧?是一一对应关系。一般来说可能ID就代表这个短链,可能是这个UID生成的对吧?其实在端上,在前端并不会给用户这些,可能是一些你刚才讲到的类似于token,或者说session的一些东西。整个的这个鉴权是怎么完成的?是如何将具体的短链/长链对应到具体的某个用户上的?
  36. 你刚才提到了公钥、私钥,你讲的这是非对称加密吗?
  37. 你讲一下什么是对称加密?什么是非对称加密?
  38. 我再问几个别的问题吧,我看你绩点是不是挺高的?
  39. 简历上是没有绩点,但是我看你好像有什么奖学金
  40. 你们学院的同学,目前大部分是什么样的想法?
  41. 你觉得你的这个实践的能力,在你周围的一些同学里面水平怎么样?
  42. 你参加过一些竞赛吗?比如说ACM之类的?
  43. 算法题:接雨水

字节国际支付 后端开发 三面

项目拷打

  1. 自我介绍
  2. 对于铁路票务系统,或者说秒杀系统,高并发怎么考虑?
  3. 如何抗住上千万的流量,对MySQL的高并发读操作?
  4. 高并发写呢?
  5. 怎么保证票不会卖多?
  6. 怎么保证数据库和缓存之间的一致性?
  7. 如何保证订单号不会重复?
  8. 卖票系统怎么防止黄牛?
  9. 对于拉黑用户的ID怎么设计?

八股

  1. MySQL的慢查询,解决思路?
  2. 怎么优化慢SQL
  3. 除了加索引,还有其他什么优化方案?
  4. 如何分表?按照什么维度分表?
  5. 还有什么优化SQL的思路?
  6. 联合索引中的最左匹配原则是什么意思?
  7. select * 会导致索引失效吗?
  8. 那么我问一下关于索引失效的原因,说的越多越好
  9. 条件查询可以用到索引吗?
  10. A or B 的判断条件会用到索引吗?
  11. IN (...)的判断条件,会用到索引吗?
  12. 队列一般在什么场景下使用?
  13. 队列有哪些不同的类型?对应哪些使用的场景?
  14. 数据结构中,除了优先队列,还有其他的哪些队列?

算法

统计岛屿数量

反问

  1. 对于AI学习的建议
  2. 面试评价,改进建议

字节国际支付 后端开发 四面

  1. 自我介绍
  2. 就你刚才介绍的这个部分,实际上是就是你在途游那块实习的一个部分是吧?
  3. OK行。我看见简历里面还有一些项目经历,像什么铁路票务系统,包括可编排Agent项目,这些项目的背景是什么?铁路票务系统是自己研究的吗?
  4. OKOK, 你大学的学校排名怎么样?
  5. 我们就针对你刚才说的这个,就是你刚才说的这个AI Agent 平台,它也是在途游实习做的一个项目是吧?
  6. 行,那那我们就聊下这个平台,那你给我完整的介绍一下,你解决的问题,包括对于这个Spring AI你的了解,包括你最终去做的效果。
  7. 你刚才有提到MCP,对吧?那你给我完整的介绍一下MCP Client 和 MCP Server的交互机制
  8. 就是你对Spring AI这部分,你是光验证它,还是说也系统化的了解了一下Spring AI整个的这个源码,包括设计流程,包括怎么去更快速的去更新Agent的开发
  9. 没事没关系,对。我再看一下,就是你在大学里边还参加了几次竞赛,就是有那个大学生计算机博弈大赛这个大赛,而且并且获得这个国家级的奖励。这个大赛主要他是干什么的
  10. 这个项目的话是你一个人,还是团队形式
  11. 你刚才在介绍SpringAI的时候也提到RAG。你对RAG的了解怎么样?就是分类或者说RAG的这个全链路这个能力有没有研究过?有没有尝试着去写一个端到端的RAG的这么一个能力
  12. 那我有这么个问题,因为我们在使用RAG的时候,虽然他能够帮我们去检索出对应的这个内容,并且我们总结生成,对吧?但是它也会出现类似于说生成的不准确?生成的不准确,或者说那你认为这个生成的不准确或者检索的不准确,它大概率会有哪些可能的原因?导致他这个检索的不正确?
  13. 我看你是吉林大学,吉林大学他是在哪个城市?
  14. 你是在实习是吧?
  15. 算法题:leetcode T151 反转字符串中的单词
  16. 我这边几个信息,就是我看你在github上还做了些对应的类似于开源项目,或者说你自己的项目。那你在学习的这个过程中,你主要日常学的这个语言,或者说精通的语言是哪一个?我看你有些是用Java写的,然后刚才又在用C++写
  17. 对,你的这个简历里边的这个火车票项目,为什么点不进去。
  18. java这块的话,你是以自学为主吗?
  19. 行,我再问一个问题,就是你在本科期间,你碰到你做的哪一件事情是对你挑战最大或者说最满意的一件事情。区别其他人的,这个能不能举个例子?
  20. 你最后是怎么找出来的bug,就测试还是别的?
  21. OK, 那你们的你这个中国大学生计算机博弈大赛,这是什么时候比的?
  22. 就相当于说你最终是进入了全国比赛,并且一等奖是这意思是吧?
  23. OKOK你们一等奖有几个?
  24. 你是说一等奖就是有十几支队伍,还是说一个其实有十几支队伍,只有一个是一等奖
  25. 总共比赛是四十来支队伍,然后其中一等奖就十来支是吧?
  26. 你刚才说有区分类目吗?还是说就光这个
  27. OKOK行,他为什么一等奖他给这么多
  28. 那这个比赛你觉得它整个难易程度和那种什么挑战杯相比,它是什么样子的?
  29. 了解。我再问一个问题,就是你个人的。你个人是对于代码是比较喜欢,还是还是说就是你在这个过程中,你比较享受的是哪个部分?
  30. 对,包括我们看你也不是有很多自学驱动,对吧?对,就你可以谈一下你的想法
  31. 或者说你为什么会自学那么多。因为我觉得自学我见过,但是可能大家可能会侧重于某一个方向,对吧?我看你这个自学的话比较广泛
  32. 我看了一下你的电脑里面有刷leetcode的,目前刷到多少级别的?
  33. 反问

这轮技术面中,面试官的反问阶段给出了不少建议,后面可以再听一下。

总结:

如上,字节的面试流程还是非常漫长的,前后推进了将近一个多月。我之前看别人的字节面试流程都推进的很快,基本都是两周内完事,不知为何到我这就变成了这样[笑cry]。暑期面试的一大感触是,一定要相信自己,面试前不要过于慌张。晚上得休息好,不然很影响第二天的状态。希望我的面经能给大家一点参考,也祝我们的秋招一切顺利[羞涩]

最后还有一件事,目前组内转正机会渺茫,是直接跑路还是再苟住一个月,一边上班一边面试,到8月底再看看有没有转正答辩的机会。心里还是挺犹豫,但有些时候必须得快刀斩乱麻。

{nowcoder-vote}{160603}

本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
    OK假如这样的一个场景,我在100万的数据当中,我要找到前十位,用什么排序比较好呢?
  17. 17
  18. 18
    追问
    100条数据当中我要选第N个数据,这种是用哪种方式比较好?
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
    你去操作打开一个文件的过程,这个到底总是怎么做的?从你开始操作打开这个文件,你写代码打开这个文件的过程,从上到下来讲一下。
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
    追问
    那假如说我有一个高并发的场景,开始频繁进行TCP的握手挥手,那他有可能会发生什么问题?
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
    除了构造函数,还有个机构函数。然后我们在那个父类和子类当中,假如说一个子类析构,他是先析构谁再析构谁。
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
    这个线程是怎么提起来的?是有什么单独的服务吗?会不会挂掉?如果挂掉之后,解封会不会失败?这块怎么设计?
  70. 70
    追问
    等一下,你按照我的思路来。你不是有个异步线程吗?这个线程挂掉,不是会影响你的黑名单解封吗?
  71. 71
  72. 72
  73. 73
  74. 74
    追问
    就是你这里为什么会涉及到分布式的问题?把这个问题解释清楚,就是哪里需要去解决这个分布式的问题?
  75. 75
    重复解封会带来什么问题吗?解封的用户是否那状态就是存在这个ZSet中是吗?
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
    追问
    诶,那我当前user已经处于解封状态了,我再将其 update 解封,这样好像也没什么问题诶,业务上会有什么影响吗?
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
    追问
    你可以这样去想,首先你想一想这样一个短链接的服务,他需要具备什么功能?你再去想,要实现这个功能,需要什么样的技术能力?如果你自己想不出来需要具备什么功能,我可以把功能告诉你。然后基于我说的功能,再去想这个系统应该如何实现?这个可以吗?
  93. 93
  94. 94
    追问
    存储的长链和短链对吧?是一一对应关系。一般来说可能ID就代表这个短链,可能是这个UID生成的对吧?其实在端上,在前端并不会给用户这些,可能是一些你刚才讲到的类似于token,或者说session的一些东西。整个的这个鉴权是怎么完成的?是如何将具体的短链/长链对应到具体的某个用户上的?
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
  101. 101
  102. 102
  103. 103
  104. 104
  105. 105
  106. 106
  107. 107
  108. 108
  109. 109
  110. 110
  111. 111
  112. 112
  113. 113
  114. 114
  115. 115
  116. 116
  117. 117
  118. 118
  119. 119
  120. 120
  121. 121
  122. 122
  123. 123
  124. 124
  125. 125
  126. 126
  127. 127
  128. 128
  129. 129
  130. 130
  131. 131
    OK行。我看见简历里面还有一些项目经历,像什么铁路票务系统,包括可编排Agent项目,这些项目的背景是什么?铁路票务系统是自己研究的吗?
  132. 132
    追问
    我们就针对你刚才说的这个,就是你刚才说的这个AI Agent 平台,它也是在途游实习做的一个项目是吧?
  133. 133
  134. 134
  135. 135
    就是你对Spring AI这部分,你是光验证它,还是说也系统化的了解了一下Spring AI整个的这个源码,包括设计流程,包括怎么去更快速的去更新Agent的开发
  136. 136
    没事没关系,对。我再看一下,就是你在大学里边还参加了几次竞赛,就是有那个大学生计算机博弈大赛这个大赛,而且并且获得这个国家级的奖励。这个大赛主要他是干什么的
  137. 137
  138. 138
    你刚才在介绍SpringAI的时候也提到RAG。你对RAG的了解怎么样?就是分类或者说RAG的这个全链路这个能力有没有研究过?有没有尝试着去写一个端到端的RAG的这么一个能力
  139. 139
    追问
    那我有这么个问题,因为我们在使用RAG的时候,虽然他能够帮我们去检索出对应的这个内容,并且我们总结生成,对吧?但是它也会出现类似于说生成的不准确?生成的不准确,或者说那你认为这个生成的不准确或者检索的不准确,它大概率会有哪些可能的原因?导致他这个检索的不正确?
  140. 140
  141. 141
  142. 142
    我这边几个信息,就是我看你在github上还做了些对应的类似于开源项目,或者说你自己的项目。那你在学习的这个过程中,你主要日常学的这个语言,或者说精通的语言是哪一个?我看你有些是用Java写的,然后刚才又在用C++写
  143. 143
  144. 144
    行,我再问一个问题,就是你在本科期间,你碰到你做的哪一件事情是对你挑战最大或者说最满意的一件事情。区别其他人的,这个能不能举个例子?
  145. 145
  146. 146
  147. 147
  148. 148
  149. 149
    追问
    你是说一等奖就是有十几支队伍,还是说一个其实有十几支队伍,只有一个是一等奖
  150. 150
  151. 151
  152. 152
  153. 153
    追问
    那这个比赛你觉得它整个难易程度和那种什么挑战杯相比,它是什么样子的?
  154. 154
    了解。我再问一个问题,就是你个人的。你个人是对于代码是比较喜欢,还是还是说就是你在这个过程中,你比较享受的是哪个部分?
  155. 155
  156. 156
    追问
    或者说你为什么会自学那么多。因为我觉得自学我见过,但是可能大家可能会侧重于某一个方向,对吧?我看你这个自学的话比较广泛
  157. 157

同作者面经

相关公司