双非本科,软件工程,2 年工作经验。有幸得到内推机会,参加了阿里 Java 岗的面试。

为此我做了非常多的准备,最终顺利拿到 offer,特分享一下这次的 5 轮技术面真题,以及一份阿里 P7 师兄整理的 8 月份各部门面试题,希望能够给一些正在面试阿里或计划面试大厂的朋友提供帮助。

总共有五面,主要涉及的知识点复盘如下:

Java 部分

        
  •     

    Jdk1.7 与 jdk1.8 在 g1 垃圾回收器上有什么区别?

             
  •     

    常见的加载器有哪些,如何自定义一个加载器?

             
  •     

    生产上有没有遇到 JVM 参数调优的问题?

             
  •     

    知道什么是内存泄露吗,如何手动去造成内存泄露?

             
  •     

    线程池常见的一些参数,知道 Future 接口吗?

        

数据库部分

        
  •     

    常见的索引类型有哪些?

             
  •     

    为什么主键索引使用 B+树而不去使用 B 树?

             
  •     

    说一说联合索引最左原则的原理,并且什么情况下索引是生效的?为什么?

             
  •     

    常见的隔离级别有哪些?有什么区别?

             
  •     

    知道回表查询吗?聚集索引?

             
  •     

    项目中有没有使用到分表分库?说一说怎么分的?

        

分布式/中间件部分

        
  •     

    Redis 是单线程的吗?

             
  •     

    为什么 Redis 的性能比较高?

             
  •     

    使用消息队列有没有遇到消息丢失的情况,怎么去设计补偿行为?

             
  •     

    说一说项目中为什么使用 Kafka 而不去使用其它消息队列?

             
  •     

    说一说 Zookeeper 中的 Zab 协议

             
  •     

    分布式锁的实现方案有哪些?各有哪些优势与缺点?

             
  •     

    分布式限流 Sentinel 中线程模式与 QPS 模式的区别

        

微服务部分

        
  •     

    有没有遇到 dubbo 连接数爆满的问题

             
  •     

    dubbo 如何实现使用 zookeeper 找到对应的服务

             
  •     

    dubbo 使用 zookeeper 作为分布式治理中心有什么弊端

             
  •     

    说说你认为 dubbo 与 SpringCloud 的差异

        

总的来说,阿里的面试要做好充分的准备,面试官可能会让你介绍一下这个项目包括项目背景、项目架构、QPS 等等。机会永远是留给有准备的人。下面这套阿里 P7 师兄整理的 4 月份各部门面试题,分享给大家。每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图吧。需要的读者朋友们 看文末领取即可

Java 基础

Java 集合框架

jvm

多线程

网络

算法和数据结构

Spring

Netty

微服务/分布式

消息队列

分布式 ID,其他(网关、限流...)

MySQL

Redis

经验总结

这是我在工作、面试中学习并总结到的一些知识点,都是一些比较典型的、常被问到的问题。如果你平时没有注意去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你知道怎么回事,但是你平时没有认真总结,你也可能会出现逻辑混乱的情况,从而错失工作机会。

有些知识点不经常使用就会忘记,但是面试还会问,对此,我也是深受其害,所以我决定将这些遇见的问题整理下来,分享出去,帮助更多的人,我们共同进步。所谓“温故而知新”,没事的时候多翻看一下这些知识,没准就会有新的收获。你没时间整理的东西,我都帮你写好了。有需要的小伙伴添加小姐姐vx:java9610 领取即可