随着我正式毕业,马上将成为一名崭新牛马,我暂时有时间来整理一下自己的秋招&春招面经了。大大小小 20 几轮面试后,暴露出了我最严重的缺点:对于自己的认知和能力过于自信(主要是认知)。这里我就不再对这些面试经历做一些主观评价了,单纯是一些客观的面试内容,希望能对各位有所帮助。

利益相关,关于字节跳动的相关内容不会给出细节

面试结果

公司 岗位/部门 进度
字节跳动 部门 1 ✔ OC
腾讯 云架构平台 - 对象存储 ❌ 录用评估挂
阿里控股 技术风险平台 - 可观测 ❌ 二面挂
美团 本地核心商业 - 美团买药 ✔ OC
阿里国际 AliExpress - 运营平台 ❌ 一面挂
蚂蚁 蚂蚁国际 - 效能平台 ❌ HR 面挂
阿里淘天 阿里妈妈 - 工程技术 ❌ 二面挂
华为 华为云 ✔ OC
阿里淘天 业务技术 - 直播技术 ❌ HR 面挂
腾讯 WXG - 企业微信 ❌ HR 面挂
字节跳动 部门 2 ✔ OC

关于我阿里云的转正 offer,可以参考我的 2024 暑期实习面经

详细面经

字节跳动 部门 1

共三面,详内容细略

腾讯 云架构平台 对象存储

一面 - 2024-8-20

  • 自我介绍
  • 说说实习都做了什么
  • 做题:对角线遍历
  • 做题:编辑距离
  • 做题:LRU 缓存
    • 为什么需要链表?如果是双向链表有什么好处?
    • 我希望 LRU 线程安全怎么做?(ConcurrentHashMap 实现 Map,并通过锁确保链表中删除和添加两个操作合并为原子化操作)
    • 我希望持久化 LRU 缓存怎么做?(实现类似 MySQL 的重放日志,并做日志幂等和链表容量记录,防止无效日志过多)
  • 2.5 亿整数中找到不重复的整数(分治,将 2.5 亿个整数分割成若干个小块,每块可以放入内存中)
    • 使用分治法,如果某个小块里本身含有很多的不重复的整数,那么会造成迭代次数过多,你怎么解决?
    • 你的方法迭代次数不确定,是否能让分治迭代次数更稳定?
    • 如果你决定采用外部排序,说明你引入了额外的计算资源,如何更好得设计外部排序方式来节省你的计算资源?
    • 如果最终不重复数据的数量仍然大于你内存的容量,你的方法还能行吗?
    • (别问了,我投降 ┗( T﹏T )┛)
  • 无反问,面试官说下一个候选人还等着呢。

(总计 90 min)

二面 - 2024-8-29

  • 自我介绍
  • 讲实习
  • 讲开源
  • 如何设计一个 CPU 密集型短任务的线程池
  • 如何将 40 亿个整数存在 1G 内存中?给出计算过程
  • 做题:IP 地址转整数,使用位运算
  • 做题:给一张有向图的图片,现场写拓扑排序
  • 反问:
    • Q: 技术栈
    • A: C++
    • Q: base?
    • A: 深圳
    • Q: 业务?
    • A: 对象存储 COS,竞品就是阿里云的 OSS

(总计 90 min)

三面 - 2024-9-6

  • 自我介绍
  • 做题:不使用/% 的情况下,实现取模运算。另外,也不能使用循环减法实现。(难!没做出来,参考这个:https://www.cnblogs.com/yanye0xcc/p/13520964.html
  • 做题:对于一个 int 整数,以 k 位为一组,实现组间反转同时组内不反转。仅使用位运算,不允许使用包括 String 在内的任何容器。(超时了…)
  • 几乎无反问。(寄!)

(总计 90 min)

阿里控股 技术风险平台 可观测

一面 - 2024-9-4

  • 自我介绍
  • 做题:二叉树的序列化和反序列化
  • 开源项目,深挖可观测部分
  • 实习经历
  • 无八股
  • 反问:
    • Q: 业务?
    • A: 阿里除云以外的可观测中台
    • Q: Base?
    • A: 杭州

(总计 60 min)

二面 - 2024-9-13

  • 自我介绍
  • 开源项目,讲 SkyWalking PR 的源代码
  • 实习经历
  • 无八股
  • 做题:交错字符串
  • 反问:
    • Q: 试用期?
    • A: 3 个月
    • Q: Base?
    • A: 杭州

(总计 70 min)

美团 - 本地核心商业 - 美团买药

一面 - 2024-9-6

  • 自我介绍
  • 实习经历
  • 讲讲大模型和医疗行业怎么结合?
  • volitle 关键字的实现原理
  • syncnhronized 关键字的实现原理和使用场景
  • Rentrentlock 的实现原理和应用场景
  • MySQL 的索引使用了什么数据结构?为什么不用 B 树?
  • 主键索引和唯一索引有什么区别?
  • 什么是幻读?怎么解决?
  • MVCC 的实现原理
  • 了解 Redis 吗?它为什么快?
  • Redis 主要数据结构都有哪些?
  • 场景题:微信朋友圈获取最近 3 天内最新点赞的头像,头像一次最多显示 10 个
  • 做题:接雨水
  • 反问:
    • Q: 业务?
    • A: 美团买药
    • Q: Base?
    • A: 北京
    • Q: 面试流程?
    • A: 两轮技术面

(总计 60 min)

二面 - 2024-9-10

  • 自我介绍
  • 实习经历
  • 主键索引和唯一索引有什么区别?(看来上一面这个答得不好又问了一次 😓)
  • 实习工作:做了什么项目、技术难点、线上遇到了什么问题、系统有什么改进的地方…
  • 有什么职业规划
  • 做题:24 点游戏(又一个 hard 😶)
  • 反问:
    • Q: Base 地?
    • A: 北京成都,上海人比较少

(总计 80 min)

阿里国际 - AliExpress - 运营平台

一面 - 2024-9-12

  • 自我介绍
  • List 八股全家桶(实现原理、扩容、不同实现的时间复杂度)
  • Set 八股全家桶(实现原理、应用场景)
  • HashMap 八股全家桶(实现原理、应用场景、时间复杂度)
  • 并发时用迭代器访问 HashMap 会出现什么问题?
  • 红黑树和平衡二叉树的异同,实现原理分别是什么?
  • 什么是轻量级锁和重量级锁
  • CAS 实现原理及其应用场景
  • 如何用代码实现死锁?
  • 场景题:淘宝下单服务,需要调用 200 个 RPC ,RT 过高,怎么优化?
  • 在 Java 中如何抛出 OOM ?
  • MySQL 的关键特点是什么?
  • 实习经历
  • 求职意向
  • 无算法
  • 反问:
    • Q: 是否需要倒时差?
    • A: 只有大促时需要
    • Q: Base?
    • A: 杭州

(总计 70 min)

蚂蚁 - 蚂蚁国际 - 效能平台

一面 - 2024-9-14

  • 自我介绍
  • 介绍项目
  • 反射的原理和使用场景
  • ClassLoader 原理和类加载机制
  • 分布式锁都有什么实现方式
  • ThreadLocal 原理与使用场景
  • 什么情况会产生 Full GC
  • 频繁 Full GC 要怎么排查
  • 有什么岗位期望?
  • 遇到过最有成就感的事是什么?
  • 遇到过最大的困难是什么?
  • 无算法
  • 反问:
    • Q: 业务?
    • A: 蚂蚁国际技术中台效能部门
    • Q: Base?
    • A: 杭州

(总计 60 min)

二面 - 2024-9-20

  • 自我介绍
  • 介绍实习经历,大模型相关
  • 介绍开源经历
  • 讲讲用过的设计模式和在项目里使用过的设计模式
  • 了解岗位具体工作内容
  • 无算法
  • 反问:
    • Q: 试用期
    • A: 3 个月
    • Q: 校招晋升
    • A: 满一年

(总计 50 min)

三面 - 2024-9-30

  • 自我介绍
  • 介绍实习经历
  • OAuth 2.0 鉴权逻辑
  • 介绍开源经历
  • 讲讲 Java 反射的原理和应用场景
  • 场景题:实现三张数据表的数据同步和回滚(即如何用 Java 实现关系型数据库的事务)
  • 反问:
    • Q: 是否有时差问题?
    • A: 基本没有

(总计 50 min)

淘天 - 阿里妈妈 - 工程技术

一面 - 2024-9-20

  • 自我介绍
  • 介绍实习经历
  • 了解大模型的内部原理
  • 线上出现 full gc 应该怎么排查
  • 讲讲什么是分布式锁,如何实现?
  • muti-agent 概念和实践
  • CoT 的应用和对数据的影响
  • 讲讲大模型在广告场景下的应用
  • 做题:给出一个图,计算联通分量数量以及最大联通分量的节点数
  • 反问:
    • Q: 业务?
    • A: 广告工程
    • Q: Base?
    • A: 北京杭州都有

(总计 60 min)

二面 - 2024-10-9

  • 自我介绍
  • 大模型 CoT 的原理和应用
  • Mutil Agent 的优势是什么
  • CPU 打满了有什么原因?怎么排查?
  • 如何实现 Java 的协程模型?
  • Java RenttrantLock 的实现原理
  • 你有什么优势和劣势?
  • 求职意向和手上的 offer
  • 做题:最长连续序列

(总计 60 min)

华为 - 线下面试

  • 2024-10-16,一面、二面、主管面,背靠背线下面试
  • 自我介绍
  • 介绍开源经历
  • 介绍实习经历
  • 几乎没有八股
  • 一面算法:滑动窗口最大值
  • 二面算法:最长有效括号
  • 求职意向和未来规划

(一面 50 min,二面 50 min,主管面 30 min)

淘天 - 业务技术 - 直播技术

一面 - 2024-12-9

  • 自我介绍
  • 介绍实习经历
  • 介绍 Nacos 项目
  • 讲讲 Spring AOP 和 IOC 的原理
  • Spring AOP 是如何实现的
  • 如何仅通过 Java 的数据结构,设计一个支持高并发、高命中率、限制内存占用、允许过期淘汰的缓存系统?
  • 无算法

(总计 60 min)

二面 - 2024-12-11

  • 自我介绍
  • 介绍实习经历
  • 场景题:如何实现微信运动排名
  • 场景题:如何统计用户的 API 调用量和登录时间等信息
  • 场景题:如何实现扫码登陆
  • 无算法

(总计 30 min)

腾讯 - WXG - 企业微信

一面 - 2025-2-17

50 分钟内完成:

  • K 个一组翻转链表

  • 回文链表

  • 自我介绍

  • 介绍 Skywalking 项目

  • 讲讲协程和线程

  • 操作系统是怎么实现锁的?

  • 缓存一致性是怎么做到的

  • gRPC 和 HTTP 有什么关系?

  • gRPC 是怎么序列化的

  • HTTP 如何实现视频推流(不懂)

  • 双亲委派模型是什么

  • 讲讲类的加载过程

  • Java 反射时是如何加载类的(不懂)

  • Spring Boot Starter 是怎么加载的?(不懂)

  • Innodb 为什么使用 B+ 树

  • B+ 树虽然层数少,但每层节点中的数据量很大,为什么 Innodb 仍然采用它?

  • 可重复读是怎么实现的?

  • TCP 序列号是如何防止回绕的?(解答见此

  • SYN 序列号如何变化的?(解答见此

  • 对关闭的 TCP 连接发送 SYN 包会发生什么?(解答见此

  • 滑动窗口和拥塞控制分别是用来处理什么问题的?

  • 反问:

    • Q: 业务?
    • A: 企业微信
    • Q: Base?
    • A: 仅广州

(总计 120 min)

二面 - 2025-2-19

40 分钟内完成:

  • 将数组排序所需的最小交换次数

  • 判断树的同构

  • 仅使用 CAS 实现无锁并发的循环队列,单 push 线程多 pop 线程

  • 自我介绍

  • 介绍实习经历和难点

  • 共享内存的原理和作用

  • 设计题:100 万个 QQ 账号,每个账号 500 个好友,若 a 有 b 好友 b 没有 a 好友,称它们为脏数据。2g 内存前提下如何快速找到脏数据?

  • 反问:

    • Q: 作息?
    • A: 10 - 10 - 5
    • Q: 业务?
    • A: 基于企业微信 Saas 平台做的业务

(总计 90 min)

三面 - 2025-3-4

一小时内完成:

  • 问题 1
1
2
3
4
5
6
7
8
9
10
11
12
一、某个直播平台计划开发一个高热直播间监控系统

具体需求是:

1、可以管理所有直播,新开播就要加入到系统里面,直播结束就要从系统去掉

2、直播间热度是会不断变化(例如不断有人加入、点赞、送礼物、退出等因素),热度出现变化时往高热系统更新这个直播当前热度值(高频,时间复杂度希望尽量低)

3、运营人员日常巡查希望可以在任何时刻都知道当前热度最高的 100 个直播间(低频)

请根据上述需求实现一个类

  • 问题 2
1
2
3
4
二、工行有 30 万个员工,其工卡号码分别是 1~30 万,在接下来的某天他们将举行年会,需要抽出 10 万个员工发奖品。
我们有一个随机数生成函数 rand()能够生成[0~65535]的整数,请写一个公平的抽奖程序,输出这 10 万个员工的工卡号码。

进阶:30 万抽 任意 N 个员工?
  • 问题 3
1
2
3
4
5
6
7
8
9
10
11
12
三、对于一棵满二叉排序树深度为 K,节点数为 2^K - 1 ;节点值为 1 至 (2^K-1)。
给出 K 和任意三个节点的值,输出包含该三个节点的最小子树的根节点值
样例输入:k =4 节点:10 15 13
样例输出:12

# 8
# / \
# 4 12
# / \ / \
# 2 6 10 14
# / \ / \ / \ / \
#1 3 5 7 9 11 13 15
  • 详细讲讲思路和时间复杂度
  • 自我介绍
  • 介绍实习经历
  • 协程和线程的区别
  • Protobuf 如何序列化和反序列化
  • 常规反问

(总计 90 min)

四面(面委) - 2025-3-12

  • 自我介绍
  • 做题:
    • 实现 Linux 控制台中展示字符串编码的能力
    • 设计一个定时器,经度为秒级,可处理海量任务,单机、单线程实现,说出实现思路即可
  • 讲讲 SkyWalking 项目中的难点
  • 讲讲实习经历和遇到的项目难点

(总计 60 min)

字节跳动 - 部门 2

共三面,详内容细略

笔试

美团 - 笔试 - 2024-8-31

(90 min)

第一题 第二题 第三题 选择题(10 道)
100% 80% 0% 10 道单选

蚂蚁 - 笔试 - 2024-9-1

(100 min)

第一题 第二题 第三题 选择题(15 道)
100% 35% 0% 9 道单选,6 道多选

阿里控股 - 笔试 - 2024-9-7

(100 min)

第一题 第二题 第三题 选择题(15 道)
100% 20% 0% 9 道单选,6 道多选

华为 - 笔试 - 2024-9-19

(120 min)

第一题 第二题 第三题
22% 100% ?(提交了十次都没执行完,最后也不知道是几分)