其实本来真的没打算写这篇文章,主要是我的记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。我自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。
我参加的是阿里的社招面试(先社招后内推),而社招不同于校招,问题的范围其实是很随机的。因为能参加一些比较知名的互联网公司社招的人,70%以上都会有个3-5年的经验。这倒不是说一两年经验的同学没有机会进这些公司,而是因为这种公司,大部分情况下只招一些比较资深的开发和应届生,而不招那些处于中间阶段的人。而1-2年经验的同学,往往就刚好处于这个尴尬的阶段。所以我的社招挂在了三面,后来得以为老前辈内推我有面试一遍,有社招的经验,也让我面试如鱼得水,成功走进了阿里。下面分析我的两次阿里面经。
社招阿里巴巴(新零售部门),三面被挂
阿里巴巴一面(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的呢?
内推阿里巴巴(阿里口碑)
5面拿offer(3轮技术面+总监面+HR面)
阿里巴巴一面(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核心知识点整理》
一份是面试真题《1000道互联网Java工程师面试题》
点赞+关注,戳此下载原文件。
Java核心知识点整理
1000道互联网Java工程师面试题
求来的大厂面试场景(为了学习提升可以没脸没皮,啊哈哈哈)
我针对这些大厂的面经场景也找了很多题刷,对自身的提升也是非常大(还特意要了份面试答案)
美团部分面经
好未来面试场景
分享一些我个人的学习文档,有需要的朋友自行选择获取:
1、面试文档专题整理
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
根据自身面试经历整理以及不断收集的(珍藏版)
相关的电子书、底层源码
阿里巴巴必备学习知识点
资料获取方式:有感兴趣的工程师朋友们 “戳此下载原文件。
注意注意:整理不易,希望大家不要做收藏家,动动手指帮作者点个赞谢谢啦!!