目录
正在加载目录...

TikTok SWE NG 面经 2026 | 三轮技术面:C++八股深度拷打 + LRU + Java并发全记录

TikTok SWE NG 面经 2026 | 三轮技术面:C++八股深度拷打 + LRU + Java并发全记录

TikTok SWE 面试一共三轮技术面,一面是未来的同事,二面是主管,三面是hire manager,三轮技术通过之后就是HR面试了。

TikTok 是字节跳动旗下的短视频平台,用户可以在上面创作、分享和浏览短视频,视频长度从十几秒到几分钟不等。它在 2017 年开始面向国际市场推出,后来在 2018 年和 Musical.ly 合并,之后用户规模迅速增长,现在已经是全球月活超过 10 亿的平台之一。

TikTok 最大的特点之一是推荐系统很强。平台会根据用户的观看、停留、互动等行为,不断调整内容推荐,让每个人看到的内容流都不一样,也因此有很高的用户黏性。

工程团队分布在洛杉矶、新加坡、伦敦、都柏林,以及亚洲多个办公室,主要做推荐系统、实时视频处理、大规模内容审核、电商基础设施和搜索等方向。需要注意的是,TikTok 本身不在中国大陆运营,大陆对应的是独立运行的抖音。

Tiktok SWE 第一轮面试

tiktok的面试还是技术问题 八股文比较多,简历 experience 深挖,面试官会针对简历中间的重点及技术栈进行追问。

1. 自我介绍(项目和技术栈,一点没问)
2. 为什么做开源(答想转java,八股没用,得实践,面试官肯定)
3. int a = a(乱答,最一进来说是做推荐架构的,主要cpp,我就知道寄了
1. 自我介绍(项目和技术栈,一点没问)
2. 为什么做开源(答想转java,八股没用,得实践,面试官肯定)
3. int a = a(乱答,最后反问)
4. 三种const(忘了,答的忘了)
5. 什么是OOM(经典八股)
6. 什么时候会OOM(答的申请大量内存资源和内存泄漏)
7. 除了忘了delete呢(答的资源没有释放和死锁)
8. 怎么排查?(答的ps valgrind gdb)
9. 你用过gdb调试对吗(对,一般用gui)

10. 听过一个linux排查工具叫A什么什么什么吗?(没有)
11. 怎么增强系统稳定性(答的看门狗和备份容灾,以redisson和集群为例,回考虑太少)
12. 进程切换的开销为什么有开销(内核用户态,页表,栈,文件描述符)
13. 怎么减少这种开销(讲了线程,io多路复用)
14. 听说过协程吗(答知道但没用过,讲了用户态模拟线程)
15. 怎么增强系统性能(讲了减少切换开销、并行、减少内存拷贝)
16. 听说过什么是“亲核性”吗,又补充叫“core affinity”(没有,我说但是可以猜一下,面试官说好那你猜一下,我说类似于线程池参数配置,cpu密集型任务应该充分利用多核并行特性,面试官点头说其实就是xxx,没听清)
17. 一个服务最少有几个线程池(想了一会,我说要具体看,像redis后台是单线程的那就一个负责io就行,面试官说那你那个项目呢,我说两个,一个连接一个数据库)

17. 一个服务最少有几个线程池(想了一会,我说要具体看,像redis后台是单线程的那就一个负责io就行,面试官说那你那个项目呢,我说两个,一个连接一个数据库)
18. 只有一个线程池会怎么样?(我说可能会服务间干扰,比如有后台大量线程阻塞,耗尽影响连接)
19. 算法题经典lru(问能不能用java,说还是用c++,同意提示一下api,写了20分钟,自己solve了两个bug,面试官提醒了1个bug,通过了)

反问:
1. 第一题是咋回事,回可以通过编译,符号表里存在,值是任意值
2. 稳定性要怎么考虑,回包括监控,容器,cicd等,需要工作经验
3. 计算机基础如何,回和面评有关不能细说,但还可以
4. 岗位和ai infra是否有关,答强相关

Tiktok SWE 第二轮面试

1. 自我介绍

2. 讲server框架项目

3. qps多少?

4. 有没有优化方法(答一半被打断,问有没有实际优化经验,答没有,又扯一大堆内存/锁升级细化/频率,无回应)

5. 突然开始问本科背景,拷打我没学过操作系统的课(我说我自学过)

6. 怎么检测哪里需要优化,有什么工具(答的gdb和ps/top)

7. gdb有啥指令(讲的frame/变量/coredump)

8. 然后一顿拷打,我有点忘了拷打啥了,只能说一下相关思考然后说不会

9. 来写代码,那你就写一下你讲的服务器框架(WTF?还好昨天重新细看了代码,写了半天给架子搭上了,实现是基本没有。被打断说注意时间,只能对着架子讲一下思路,讲的时候有回应,讲完无回应)

10. 一个互斥锁获取释放的时间开销大概是多少(有点忘了,答的几十us,然后讲了一下上下文用户态内核态切换开销,这里后来问ai是几us)

11. 讲一下初始化列表(答的在构造函数之前初始化,面试官质疑我,我再次肯定,面试官说下来再看看。下来问ai我答的是对的)

12. c++11以后的新特性有哪些(这时候被拷打得脑子已经有点不动了,只说了auto,模板元编程)

13. 讲一下move

14. 右值引用能作为返回值吗(当时说应该可以,然后补充说不能返回临时变量的引用)

15. 讲一下智能指针

16. 突然问mcomp是什么专业,问gap干了什么?

17. 反问(问评价,说c++基础还得加强,比起国内同学的还是拉了点,问手撕咋样,说还可以基本搭出来了)

Tiktok SWE 第三轮面试

面试官上来一看简历,项目也比较简单,那就换个拷打的方向,今天拷打算法,直接开始手撕,题目本身不难,难在撕出来后面试官又加要求。

LCR 095 最长公共子序列(面试时让输出序列,不是长度)难在撕出来后面试官加要求问主包如果用字符序列 CharSequence 去做不用 String 可不可以。

然后又问了几个常规问题(这个面试官问的都是java的问题):

1. ConcurrentHashmap 底层原理?

2. 项目中的缓存有设置过期时间吗,你是依据什么设置的?

3. 为什么要用本地缓存?

4. synchronized 锁升级过程,详细说一下如何实现可重入?

5. reentrantlock 底层原理?

6. JWT 如何实现无状态鉴权的?如何进行加密的?

7. 为什么会想到要限流,是基于什么样的一个场景?如何压测的?qps 是多少?用多少并发量去压测?限流前后缓存命中率有什么变化?

8. 如果单机 redis 迁移到集群架构,会出现什么问题,这个时候如何保证一致性?(主要是问 caffeine 的问题)

HR面(20min)

都是一些很常规的问题,最后反问了一下具体业务,主要是缺前端和客户端,这两岗位 hc 充足,还是约了后端面试。

整体面下来除了二面压力很大,剩下的几面基本都很轻松愉悦,这里真的要给字节的效率点赞了,后面的几面都是前脚面完,两分钟不到就出结果;而且每轮面试前 5 分钟 hr 都会发短信祝面试顺利,情绪价值也给拉满了。

了解更多

在 InterviewAid 的实际服务中,Tiktok面试辅助服务主要适用于候选人在面试时需要清晰表达思路、Code、System design 技术水平要求高。Interview Aid 的面试辅助服务主要面向 Senior / Staff 及 L6+ 岗位,尤其适用于 System Design 与复杂项目深挖类面试。

在服务开始前,我们会进行针对性的模拟测试与流程对齐;同时提供整理的服务案例与参考材料,支持提前预约 30 分钟的 Mock,帮助候选人熟悉此服务与不同公司的面试形式。

正文完