一位球友的 2022 春招面经,拿到了美团、字节、华为等公司的 offer。
面经中涵盖的问题,我几乎都找到了对应的参考答案,希望可以帮助到你。
美团
一面
- 挖项目,问的太多了,这里就不一一列举了,大部分是某个功能是怎么实现的或者如果要加某个功能应该怎么实现。
- 进程线程区别。
- 死锁,死锁条件。
- 知不知道中断和轮询的区别。
- 数据库索引,讨论了一下B+树能存多少数据。
- 数据库存储引擎知道哪些,有什么区别。
- 数据库锁。
- 算法题:起始点到终点最短路径。
部分问题参考答案 :
- Java 并发常见知识点&面试题总结(基础篇)
- Java 并发常见知识点&面试题总结(进阶篇)
- 选中断还是轮询方式?深究其中的区别
- MySQL 索引知识点总结
- MySQL面试题/知识点总结!
- MySQL锁总结
- 《Java 面试指北》 - 技术面试题篇
- LCP 35. 电动车游城市 - LeetCode
二面
- 问项目。
- 什么是序列化反序列化。
- 负载均衡,知道哪些负载均衡 。
- 什么时候会OOM,服务OOM怎么办,如何排查。
- Spring 启动流程。
- Spring 设计模式。
- 对于模版模式的理解,应用场景,你在项目中是怎么使用的。
- HTTP 请求过程 。
- TCP 和 UDP 区别。
- Linux知道哪些命令。
- 设置索引有什么注意的地方。
- 最近看了哪些书,有什么收获。
- 算法题:合并有序数组 O(N)时间 O(1)空间。
- 数据库设计:只能以半小时为单位订会议室。
部分问题参考答案 :
- 招银网络二面:什么是序列化?常见的序列化协议有哪些?
- 《Java 面试指北》 - 技术面试题篇 - 高并发模块
- 系统稳定性——OutOfMemoryError 常见原因及解决方法 - 3.2.1 异常诊断
- Spring常见问题总结
- 设计模式最佳套路4 —— 愉快地使用模板模式
- 一次 HTTP 请求的完整过程
- TCP和UDP的区别
- Linux 基础知识总结
- MySQL 索引知识点总结
- 88. 合并两个有序数组 - LeetCode
华为
一面
- 项目、论文。
- String 能否被继承。
- Java 内存泄露和排查。
- Hash 方式和 Hash 冲突解决。
- 静态代理和动态代理。
- 线程通信方式。
- Volitate关键字。
- Java 高效拷贝数组。
- 算法题 跳跃游戏 leetcode 55。
部分问题参考答案 :
二面
- 简单说说项目、论文。
- 项目是自己学习的还是落地项目。
- 本科保研绩点高,为啥研究生期间没有刷绩点。
- 对华为的了解,这个聊了比较久 因为我本身就是华为用户,比较了解,主管也给我介绍和补充。
- 实习时间。
- 反问部门、技术栈,是否可以自己选项目。
字节
一面
- 问项目,聊怎么实现,从项目里学到什么。
- 手写单例模式,和 Spring 的单例有什么区别。
- 算法题:给你一个整数数组
nums
,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 - SQL 题:根据题目要求写出对应的 SQL,由于太久没写,不会做。
- 智力题 1-N批次其中有一批次重量不合格 用最少称重次数找到
1) 刚开始说二分 面试官说不是最优
2) 提示可以从每批次拿不同数量:第N批拿N个 算重量差值就可以确定
部分问题参考答案 :
二面
- 问项目。
volitate
关键字。- JVM新生代怎么划分,大对象怎么分配。
- 新生代有哪些垃圾回收器。
- ParNew 原理。
- Innodb 默认隔离级别,RR能防止幻读吗,RR默认使用间隙锁吗。
- 怎么理解最终一致性,有哪些实现方案。
- 分布式事务。
- 算法题:数组里每个数右边第一个比他大的数。
部分问题参考答案 :
- Java 并发常见知识点&面试题总结(基础篇)
- Java 并发常见知识点&面试题总结(进阶篇)
- Java 内存区域详解
- JVM 垃圾回收详解
- MySQL面试题/知识点总结!
- 最终一致性,一致只会迟到,但绝不会缺席
- 《Java 面试指北》 - 技术面试题篇 - 分布式模块
- 496. 下一个更大元素 I - LeetCode
三面
- 问项目。
- RAFT 脑裂、一致性。
- 负载均衡。
- 各种排序算法,分析复杂度和稳定性。
- 其他想不起来了,八股很少,一直问项目。
- 算法题:旋转图像(90度旋转矩阵)。
部分问题参考答案 :