|
发表于 2023-3-10 21:58:57
|
显示全部楼层
这是一位读者的 2022 字节跳动 Java 后端实习面经,已经拿到了 offer。字节虽然用 Go 居多,但也是有挺多 Java 岗位的招聘。

字节跳动招聘官网
我对他在面试遇到的问题进行了整理并给出了详细的参考答案,希望对准备面试的小伙伴有帮助!另外,建议准备面试的小伙伴一定要多看一些面经,根据自己的简历多多自测,这对于面试非常有帮助!
个人情况
末流 211,软件工程专业,2023 届毕业生。本来没抱多大希望,没想到最后过了。
一面(60分钟)
- 自我介绍。
- 问项目:登录鉴权是怎么做的?为什么采用 JWT 的方式?有什么好处?如何防止 Token 被篡改?
- 问项目:如何使用缓存的?技术选型的考虑?为什么要用 Sorted Set 实现排行榜?Redis 数据同步和数据迁移如何做?
- 问项目:如何防止表单重复提交?
- 问 Spring:怎么理解 AOP的?你在项目中是怎么使用的?Spring AOP 和 AspectJ AOP 有什么区别?
- 问线程池:如何理解线程池、参数、拒绝策略、原理?你的项目是如何使用线程池的?如果然你设计一个线程池,你会怎么做?
- 问 Java 并发(这块问的太深入了,顶不住啊。。。):进程和线程,了解协程吗?JMM 的理解,作用。happens-before 原则的理解,作用。Java 里面的锁你知道哪些?synchronized 关键字的理解、原理、锁升级过程。AQS 了解、原理。ReentrantLock 源码。ThreadLocal 理解、原理、内存泄露问题。
- 继续问 Java 并发:手写 DCL(Double Check Lock) 线程安全方法。为什么需要加 volatile? volatile 的作用、底层原理。
- 问计算机网络:HTTPS 和HTTP 区别、 HTTPS 加密过程。
二面(50分钟)
- 自我介绍。
- 问计算机网络:HTTPS 和HTTP 区别、SSL/TLS 的工作原理、中间人攻击了解吗?
- 问计算机网络(比较深入,有一些没有回答上来,还是要多补补基础):TCP 与 UDP 的区别,TCP 三次握手四次挥手,TIME-WAIT 和 CLOSE-WAIT 是干什么的?为什么要三次握手两次不行吗?有大量连接处于 TIME-WAIT 的原因?TCP 是长连接还是短连接?
- 问计算机网络:从输入URL到浏览器显示页面的流程。
- 问数据库:MySQL 索引的理解、底层数据结构。如何看 SQL 语句是否使用了索引?
- 问数据库:如何理解事务?表级锁和行级锁的理解,幻读、脏读问题的解决。
- 问 JVM:GC 如何判断回收的垃圾对象?GC 算法有哪些?Minor Gc 和 Full GC 有什么不同呢?ZGC 垃圾回收器了解吗?
- 问 JVM:双亲委派模型的理解,有没有在项目中实践过自定义类加载器。
- 问场景题:几十G的数据都是URL,内存空间只有1G,磁盘空间无限,统计频率最高的Top 10;
三面
这一面问的技术问题变少了很多,更多的是和面试官交流技术思维。
- 自我介绍。
- 你感觉你一二面表现的怎么样?
- 除了 Java 你还学习过什么其他的编程语言么?我说了 C 语言。面试官紧接着让我说说 Java 和 C 的使用感受,应用场景。
- 爬虫有了解吗?大学的时候写过爬虫没有?如何构建一个爬虫代理服务?
- 分布式缓存设计、缓存问题解决思路(雪崩、穿透)。
- 自己做过印象最深的一个项目,学到了什么。
- Leetcode 44.二叉树每层找最大值[18]
- ......
HR 面
随便聊了一下。
- 自我介绍。
- 项目里面做了什么,担任什么角色,最有成就感的事情。
- 对于公司的了解?还面了哪些公司?为什么要选择实习?
- 平时是怎么学习的?
- 你有什么要问我的?
- 平时除了技术喜欢干什么?
- ......
总结
字节的面试难度还是比较大的,不过,效率很高,体验也很不错。几个面试官给我的感觉还是不错的,一看就是做技术的,不整一些虚头巴脑的东西。
篇幅所限这里就不一一贴答案了,不会的题可以自己去搜索一下答案,或者可以看一下我整理的这43份面试文档,按照当前热门技术栈分类的,里面的题都是今年各厂招聘出现过的真题,需要的同学点赞点击【Java后端开发实习】即可领取!
 |
|