2021最新中高级Java面试题目,Java面试题汇总

本文记录了一位211毕业生的字节跳动面试经历,涵盖了一面到五面的详细问题,涉及Java内存管理、GC算法、线程池、SQL优化、Spring框架、MySQL、Redis、分布式缓存、源码分析等多个主题,展现了面试的全面性和深度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本人是底层 211 本科,刚毕业,科研经历,但是有些项经历。
在国内监控行业某头部企业做过一段时间的实习。
想着投下字节,可以积累下试经验和为金九银十面招做准备。投了简历之后,过了一段时
间,HR 就打电话跟我约时间,
说明一下,我投的是北京 office。
以下就是一个面试的全部过程,分享出来给感兴趣的朋友们一看。

一面:

阿里巴巴面试答案文末可以领取!

1. 触发新生代GC,如果存活对象总量大于survivor区容量,咋办

2. 如果任务很多,线程池的阻塞队列会撑爆内存的哪个区域

3. 栈在堆上吗

4. GC root有哪些

5. 实例变量可以是GC root吗

6. 了解哪些GC算法,介绍一下

7. 给个场景,问怎么设置JVM参数

8. 问了很多SQL调优,各种语句能不能命中索引,能命中哪些,怎么优化

9. MySQL的一张表里有三个字段ABC,A的种类有1000种,B有1W种,C有10W种,ABC的联合索引怎么设置,怎么使用

10. Mybatis # 和 $ 的区别

11. Mybatis接口里的方法和XML里的SQL名可以不一样吗,不一样怎么办

12. Mybatis是如何完成SQL和接口里的方法的映射的(我回答了怎么配置),那你知道它是怎么实现的吗

13. 介绍下Spring的 IOC和AOP

14. 服务器给客户端发送IO流的过程

15. IO和NIO了解多少

16. 线程都有哪些状态,怎么转换的

17. Notify和notifyAll的区别

18. 介绍线程池,不同线程池区别在哪,你平时怎么使用线程池的

19. MySQL索引的数据结构

20. B+树了解多少

21. Cookie和SessionId说一下