前言
前段时间有幸被阿里的一位同学内推,参加了阿里巴巴Java岗位的面试,本人19年双非本科软件工程专业,目前有一年半的工作经验,面试前就职于一家外包公司。如果在自己本人拿到offer之前,如果有人告诉我一年工作经验可以直接从外包进阿里,我肯定是不信。但是真的发生在自己身上,真的觉得非常非常幸运与不可思议。
Alibaba的这次面试总共有五面,包括:
-
第一轮电话面试(同事面):将近1h20min,主要是介绍项目与基础知识
-
第二轮视频面试(组长面):将近1h,同样也是介绍项目与基础知识
-
第三轮视频面试(主管面):将近40min,更深次的项目以及分布式的解决方案
-
第四轮视频面试(主管面):将近1h,项目介绍以及基础知识,也会问你的职业规划
-
第五轮视频面试(项目+hr):将近1h,前半部分是技术面,后半部分是hr面试
稍整理了一下,主要涉及以下知识:Java、数据库、分布式、中间件、微服务等,我大致将每个部分的问题整理了一下
第一:Java部分
面试问题:
-
Jdk1.7与jdk1.8 在g1垃圾回收器上有什么区别?
-
常见的加载器有哪些,如何自定义一个加载器?
-
生产上有没有遇到JVM参数调优的问题?
-
知道什么是内存泄露吗,如何手动去造成内存泄露?
-
线程池常见的一些参数,知道Future接口吗?
-
常见的代理有哪些,两者有什么区别?
相关复习笔记:
1.JVM复习参考:多线程+垃圾回收+GC+类加载机制...
JVM复习参考:多线程+垃圾回收+GC+类加载机制...
2.Java性能调优实战:JVM+多线程+数据库+设计模式+Tomcat+实战演练...
Java性能调优实战:JVM+多线程+数据库+设计模式+Tomcat+实战演练...
第二:数据库部分
面试问题:
-
常见的索引类型有哪些?
-
为什么主键索引使用B+树而不去使用B树?
-
说一说联合索引最左原则的原理,并且什么情况下索引是生效的?为什么?
-
常见的隔离级别有哪些?有什么区别?
-
知道回表查询吗?聚集索引?
-
项目中有没有使用到分表分库?说一说怎么分的?
相关复习笔记:
1.MySQL数据库复习参考:索引+锁+分库分表...
MySQL数据库复习参考:索引+锁+分库分表...
2.MySQL高级知识整合:架构+存储引擎+锁+事务+SQL优化...
第三:分布式/中间件部分
面试问题:
-
Redis是单线程的吗?
-
为什么Redis的性能比较高?
-
Redis集群化的方式有哪些?怎么确保数据的一致性?说一说你对一致性hash的认识。
-
消息队列中拉模式与推模式的区别?
-
使用消息队列有没有遇到消息丢失的情况,怎么去设计补偿行为?
-
说一说项目中为什么使用Kafka而不去使用其它消息队列?
-
说一说Zookeeper中的Zab协议?
-
分布式锁的实现方案有哪些?各有哪些优势与缺点?
-
分布式限流Sentinel中线程模式与QPS模式的区别?
-
Sentinel阈值单机模式与集群模式的区别?
-
如何解决限流时在一个服务中调用外部服务,不会因为外部服务超时,导致被限流。
-
ElaticJob分布式调度时如何解决数据倾斜的问题?
相关复习笔记:
1.Redis复习参考(68道高频面试解析题):基础+数据结构+高并发处理+集群+缓存...
Redis复习参考(68道高频面试解析题):基础+数据结构+高并发处理+集群+缓存...
2.Kafka复习参考:集群+生产者+消费者+源码...
Kafka复习参考:集群+生产者+消费者+源码...
3.RocketMQ复习参考:消息+源码+队列...
RocketMQ复习参考:消息+源码+队列...
4.消息队列高频面试整理:面试官心理分析+面试题详解...
消息队列高频面试整理:面试官心理分析+面试题详解...
5.分布式系统高频面试整理:Dubbo+Zookeeper+分布式事物+分布式锁...
分布式系统高频面试整理:Dubbo+Zookeeper+分布式事物+分布式锁...
第四:微服务部分
面试问题:
-
有没有遇到dubbo连接数爆满的问题?
-
dubbo如何实现使用zookeeper找到对应的服务?
-
dubbo使用zookeeper作为分布式治理中心有什么弊端?
-
说说你认为dubbo与SpringCloud的差异?
相关复习笔记:
1.微服务高频面试整理
微服务高频面试整理
2.SpringCloud Alibaba实战笔记
SpringCloud Alibaba实战笔记
SpringCloud Alibaba实战笔记
其它
-
SpringBoot的启动过程?
-
如果访问一个域名,说说怎么达到我们的应用服务器
-
如何解决秒杀模块“库存”超卖的问题?
-
如何解决秒杀模块“订单超时回库存”的问题?
1.SpringBoot学习教程
SpringBoot学习教程
2.高并发系统设计相关问题
高并发系统设计相关问题
总的来说,其实Alibaba的面试总会结合你项目经验QQ提问,还是相当全面的。所以在面试之前,除了刷题,你还得有能够“拿得出手”的项目做好充分的准备!面试官可能会让你介绍一下这个项目包括项目背景、项目架构、QPS等等...
另一方面,“面试造火箭,工作拧螺丝”这可也不是说着玩的,关键还是要对自己有信心,只要自己准备得足够充分,就可以在面试中发挥自如!
关于刷题方面,上面我整理了一份Java高级面试知识整理(包括:消息队列、缓存、MySQL、高并发、分布式、高可用、微服务等)。
其他还有JVM、数据库、消息中间件、分布式、调优、kafka、微服务、SpringBoot、SpringCloud、Redis等等的复习笔记,都有整理对应的文档皆如前文所见!
整理不易,祝各位小伙伴前程似锦,Offer不断,挺进Alibaba!!