每一个互联网人心中都有一个大厂梦,百度、阿里巴巴、腾讯是很多互联网人梦寐以求的地方,而我也不例外。但是,BAT 等一线互联网大厂并不是想进就能够进的,它对人才的技术能力和学历都是有一定要求的,所以除了学历以外,我们的技术和能力都要过硬才行。
今年前前后后我参加了阿里巴巴两次面试,一次是社招,一次是内推,第一次社招 3 面过后就被挂了,内推历经 5 面拿到的 offer,进入的是阿里口碑部门,分享一下这次的面经,希望能帮助到大家。
阿里巴巴一面(55 分钟)
先介绍一下自己吧
说一下自己的优缺点
具体讲一下之前做过的项目
你觉得项目里给里最大的挑战是什么?
Hashmap 为什么不用平衡树?
AQS 知道吗?知道哪一些呢?讲一讲。
CLH 同步队列是怎么实现非公平和公平的?
ReetrantLock 和 synchronized 的区别
讲一下 JVM 的内存结构
JVM 里 new 对象时,堆会发生抢占吗?你是怎么去设计 JVM 的堆的线程安全的?
讲一下 redis 的数据结构
redis 缓存同步问题
讲一讲 MySQL 的索引结构
你有什么问题要问我吗?
直接口头通知我:答得不错,准备二面吧
阿里巴巴二面(45 分钟)
根据项目问了一些细节问题
说一下 HashMap 的数据结构
红黑树和 AVL 树有什么区别?
如何才能得到一个线程安全的 HashMap?
讲一下 JVM 常用垃圾回收期
redis 分布式锁
再描述一下你之前的项目吧
你觉得这个项目的亮点在哪里呢?
你设计的数据库遵循的范式?
你有没有问题?
阿里巴巴三面(50 分钟)
又聊项目
在项目中,并发量大的情况下,如何才能够保证数据的一致性?
elasticsearch 为什么检索快,它的底层数据结构是怎么样的?
JVM 内存模型
netty 应用在哪些中间件和框架中呢?
线程池的参数
讲一下 B 树和 B+树的区别
为什么要用 redis 做缓存?
了解 Springboot 吗?那讲一下 Springboot 的启动流程吧
如何解决 bean 的循环依赖问题?
Java 有哪些队列?
讲一讲 Spring 和 Springboot 的区别
最近看了什么书?为什么?
你平时是怎么学习 Java 的呢?
阿里巴巴一面(38 分钟)
自我介绍
介绍项目, 具体一点
讲一下 Redis 分布式锁的实现
HashMap 了解么吗?说一下 put 方法过程
HashMap 是不是线程安全?
ConcurrentHashMap 如何保证线程安全?
数据库索引了解吗?讲一下
常见排序算法
TCP 三次握手,四次挥手。
深入问了乐观锁,悲观锁及其实现。
阿里巴巴二面(45 分钟)
自我介绍+项目介绍。
你在项目中担任什么样的角色?
那你觉得你比别人的优势在哪里?你用了哪些别人没有的东西吗?
Java 怎么加载类?
linux 常用命令有哪些?
Spring 的 IOC, AOP。
讲一下 ORM 框架 Hibernate
设计模式了解吗?讲一下
自己实现一个二阶段提交,如何设计?
你还有什么想问的?
阿里巴巴三面(30 分钟)
说一下自己做的项目
问了一些项目相关的问题
wait()和 sleep()的区别
原子变量的实现原理
CAS 的问题,讲一下解决方案。
有没有更好的计数器解决策略
讲一讲 NIO 和 BIO 的区别
Nginx 负载均衡时是如何判断某个节点挂掉了?
讲一下 redis 的数据类型和使用场景
k8s 的储存方式是怎样的?
Spring AOP 原理是什么?怎么使用?什么是切点,什么是切面?最好是举个例子
算法题:给一堆硬币的 array,返回所有的组合
阿里巴巴总监面(34 分钟)
算法:给一个 set 打印出所有子集;多线程从多个文件中读入数据,写到同一个文件中;判断 ip 是否在给定范围内;打乱一副扑克牌,不能用额外空间,证明为什么是随机的。
Tcp 和 udp 区别
线程池的原理以及各种线程池的应用场景
线程池中使用有限的阻塞队列和无限的阻塞队列的区别
如果你发现你的 sql 语句始终走另一个索引,但是你希望它走你想要的索引,怎么办?
mysql 执行计划
数据库索引为什么用 b+树?
你在做 sql 优化主要从哪几个方面做,用到哪些方法工具?
有没有想问的?
阿里巴巴 HR 面(23 分钟)
自我介绍
平时怎么学习的?
有什么兴趣爱好吗?
怎么看待 996?
怎么平衡工作和学习?
......
有没有什么想问的
社招时面试新零售部门,主要因为准备不充分,面试又比较紧张,所以发挥不是很好,三面之后没有了后续。之后意识到学习的重要性,平时多拿出时间来学习,后来幸运地拿到内推资格,为了把握住这次机会,做了很多准备,好在已经拿到 offer,约定在下周入职。
下面分享一下我个人面试之前学习的笔记。
笔记涵盖知识内容:Java基础、高并发、多线程、分布式、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等等知识点详细讲解,和一些面试经验,详细程度令人咋舌。
考虑到本套笔记手册内容偏多(1734 页),由30大部分组成,干货满满 不带任何水分!
(为了不影响大家的观看效果仅拿出一部分作为展示)
网络原理解读