最近在群里看到有许多大佬都在分享自己的面试经历,大佬们面试的互联网公司都好高大上。整理出一份百度Java工程师的三面面经,希望对大家能有帮助。
一面(50min过)
1、首先是自我介绍;
2、关键 SQL 优化怎么优化的?为什么性能不好?主键必须有吗?数据索引密集度很差的话,优化意义不大吧?
3、MySQL 有哪几种索引?聚簇索引和辅助索引的区别?索引数据结构?为什么用B+树?
4、MVCC?版本号怎么变化的?更新的数据的时候怎么确定版本的?幻读怎么解决的?
5、 一个 SQL 怎么走的索引?MYSQL 会怎么选的?MySQL 哪些不正规的写法无法命中索引?
6、MySQL 有哪几种日志?redo log 主要有什么用?提交之后 100%落盘吗?为什么MySQL 要写到 redo log buff 内存?
7、redis 一般怎么用的?为什么选择用 redis?为什么 redis 快呢?
8、 redis 几种数据类型?redis string 的底层实现?
9、分布式锁用过吗?说说怎么用的?用的哪个命令?
10、 redis 底层 hash 表扩容机制说一下?
11、类加载过程?常用的类加载器?调用顺序?为啥双亲委派?
二面(68min过)
1、mq 重复消费,丢消息的问题怎么解决?redis 的 list 有哪几种操作?布隆过滤器特点?缓存穿透?
2、static 关键字的用法?
3、用到的数据结构那些?Map put 的流程讲下
4、kafka,zookeeper 了解吗?
5、ThreadLocal 用过吗?不 remove 掉会有什么问题?
6、口述算法
7、之字打印
8、有什么问题?
9、哪个项目时间长一些,两个项目技术栈都讲一下,详细介绍一下***项目
10、具体做了哪些事情,一些查询维度的接口?如果现在让你开发一些接口,你怎么做接口隔离。表的数量?表数据量?
11、SQL 优化介绍一下做了哪些?怎么替换?
12、限流怎么做的?解释一下
13、介绍一下另一个平台。按刚才的介绍方式。
14、redis 解决客户端 session 共享信息怎么解决的。
15、redis 分布式锁解决了什么问题?
16、redis 为什么能支持分布式锁?使用方式有哪些?
17、MQ 用在业务场景?MQ 本身的优势是什么?一般什么情况下可以使用这个技术?核心本质原因是什么呢?开线程做不就可以了区别是什么?
18、你们的总线讲一下?
19、Spring 循环依赖怎么解决?
20、让你写一下堆栈溢出你怎么写?为什么往集合设置那么多元素没有被GC?
21、介绍一下 Java 的锁?
22、脑裂问题(配置文件)、数据倾斜(一致性哈希,虚拟节点)、数据分片
23、缓存穿透、击穿、雪崩
24、Redis 哨兵?cluster?
25、zset 底层,为什么用压缩列表(避免内存碎片),跳表查询复杂度?
26、你看这些源码自己的理解是什么?介绍了线程池 execute,submit 中适配的思想
27、你有什么问我的?(这里给出了10分钟的提问时间)
三面(36min过)
1、自我介绍
2、写博客原因?
3、离职原因?
4、为什么裸辞?
5、还有哪些再看的机会?
6、长期规划?
7、你最大的优势?
8、你怎么学习一个技术?
9、你如何实现一个短期目标?
10、还有什么问我的?
小结
除了本文涉及的百度Java工程师面经资料,我还为大家整理了多家互联网大厂的面经资料,还有更多的Java学习资料,有需要的朋友可以点击进入获取。暗号:掘金
以上就是整理出的大佬面试百度Java工程师的面经资料。总的来说,在面试中还是要沉着冷静,迅速思考,这样无论面试官问什么问题,都能做到游刃有余。也祝愿大家都能早日拿到自己想要的offer。