大厂面经:三非背景,6 轮面试,终获阿里 Offer

本人三非背景(非985 / 非211 / 非理工科) ,工作 5 年时间,待了三家公司,去阿里一直是我的梦想。

为了能进阿里,我给自己制定了非常详细的学习计划:Java Core、JVM、网络、Spring 源码、MySQL、Redis、MQ、Netty,整整准备了 1 年时间。

在面了几家还算知名的大厂后,我总结了一波面试套路,就开始了阿里的面试之旅。最终,历经 6 轮面试,顺利拿到了阿里的 offer,也算是圆梦了。

一路走来,要感谢的人太多。下面,我对整个面试过程做一次复盘,希望给大家一些启发。

01 第一轮技术面:阿里P6面试官

1、看你简历中提到处理过多次 JVM 故障,可以讲讲你遇到过哪些 OOM 的案例么?

a、我分别把之前工作中遇到的堆空间、元空间、堆外内存 OOM 场景都讲了一遍

b、按照如何分析、如何排查、如何解决、事后如何防范这个思路进行

2、看你简历写做了线程池调优,能讲下线程池的原理以及做了哪些优化吗?

a、业务线程池相互隔离

b、根据CPU核数、线程池任务的 IO 耗时/计算耗时,设置合理的核心线程数,提升性能

c、动态修改线程池参数,方便维护

d、重写拒绝策略,保证任务不丢

e、聊了一下线程池源码里的一些细节

3、能讲下你对 MySQL MVCC 的理解吗?

我分别讲了一下 RR 和 RC 隔离级别的实现原理有哪些不同

4、MySQL 索引是怎么实现的?

a、分别从性能和实现上讲了数组、链表、Hash、二叉树、BTree 为什么不合适

b、详细讲了 B+ Tree 的实现,以及普通索引是如何查找数据的

c、中间提到了节点大小、IO、回表、覆盖索引等概念

5、讲讲 Redis 是怎么用的?

a、讲了分布式锁原理

b、讲了 Redis String 的底层实现

c、讲了 Redis ZSet 的实现,详细讲了跳表结合 Hash 是如何提升效率的

你可能感兴趣的:(Java,编程语言,面试,java,人工智能,大数据)