从去年年中一直到今年年初,我面阿里总共面了5-6次,经历了三次完整的4轮技术面 + 1轮HR面,目前将面试过程和常见题目记录一下,供参考。

面试流程

面试轮次

阿里社招一般都是P6级别以上,技术面4轮以上 + 1轮HR面。

阿里校招一般都是P4、P5级别,技术面3轮 + 1轮HR面。

面试侧重点

以社招P6为例,来看看每轮考察的侧重点。

一面

一面面试官一般是你组内师兄或组长,主要考察Java基础、中间件原理以及项目经历;面试时长30-60分钟。
Java基础和中间件考察范围会在文末附上。

项目经历这块,选择一个具有代表性的讲解即可,这里指的代表性,建议选择和应聘岗位相关度稍高,难度稍大的项目,保证讲解时长处于10-15分钟左右为宜。若项目讲解时长较短,其他考察点(Java基础和中间件原理等)会涉及的非常深入,加大面试难度。

二面

二面面试官一般是团队负责招聘的技术或其他组组长,有时甚至就是一面面试官,主要考察算法,算法这块的背考就刷LeetCode或牛客网即可,保证刷完300题较为保险,至少要刷完100道。

LeetCode:https://leetcode-cn.com/problemset/all/ (中文版)
牛客网:https://www.nowcoder.com/ta/coding-interviews?page=1 (剑指offer)

算法这块的考察一般是面试官发送面试链接,面试者进入链接然后写代码即可,一般题量在1-3道,面试时长30-60分钟。偶尔需要开视频哦。

笔试代码一般不强制要求100%可运行,但是尽可能保证自己的代码可顺利运行,包括main方法的测试用例。这里切记,不会写的地方,宁可写思路,也不要写存在重大bug的代码。

三面

三面面试官一般为你所在部门的主管,侧重考查项目难点、中间件底层实现以及场景题。从三面开始,考题就比较宽泛了,一般45分钟左右。

这里一定要准备好项目中遇到的难点问题,如果准备的不好,面试官会diss你,甚至面试评价中会写上几笔,影响你最终的录取。

有的同学可能会问,我们参与的很多项目都是偏业务,基本没什么难点。如果业务量比较大,如QPS达到万级别及以上,你可以往高可用等保障策略上讲解。如果业务量确实较小,可以往复杂的功能实现上讲解,这里可"发挥"的空间就比较大了,实在目前没有复杂的功能,可以往后期可以优化或即将要做的功能上讲解。

四面

四面面试官一般是你部门主管的上级或其他部门的主管,侧重中间件底层、场景题以及个人发展规划等,开放性较大,一般30分钟左右。

比较有意思的是,某一次四面面试官问,你最近在看什么书,最想推荐给我的是哪一本,为什么?这里就需要各位平时在日常开发之余,还是需要不断充电啊。

HR面

HR一般是你所在部门的HRG,考察一般侧重你个人发展,常见问题:

  • 最近几次离职的原因;
  • 当前的职级、薪资情况以及期望薪资;
  • 你认为在当前公司中遇到的最大的挑战是什么;
  • 你在当前公司得到了哪些提升;
  • 你对未来的职业规划是怎样的;
  • 你认为你和其他求职者相比有哪些优点;
  • 项目讲解(这里不要偏向技术,偏业务的讲解就行,偶尔会diss你,要抗住);
  • 你到公司最大的期望是什么;

经过四轮技术 + 一轮HR大概率稳了,但是偶尔可能会有一些小插曲,比如HC被锁、大老板针对你的面试评价保持怀疑态度等都有可能导致你的offer审批不下来。

HR面之后一周左右HR会通知你的offer方案,这个时候你经过前面的面试,对你的岗位工作也有了一定的了解,然后可以参考自己的offer方案再决定是否接下offer。

当你接下口头offer后,后续会安排体检(一周)和背调(一周),完成之后会发放书面offer,这个时候就妥了,等着入职吧。

面试宝典

Java基础、中间件基础

以下是面试期间整理的面试题目录,具体内容就不贴了,建议大家自己动手整理,加深印象。

  • 为什么重写equals()方法就必须重写hashCode()方法?
  • Object有哪些方法?
  • 接口和抽象类的区别,什么情况下用接口或抽象类?
  • 为什么String设计成不可变?String 和 StringBuilder、StringBuffer 的区别?
  • String s = new String(“abc”) 和 String s = “abc” 的区别?
  • Arraylist、HashMap的初始容量、加载因子、扩容增量?
  • 有序的Map有哪些?为什么TreeMap是有序的?哪些集合是线程安全的?
  • HashMap的底层数据结构,是如何插入的?哈希冲突解决方案?为什么是非线程安全的?
  • HashMap为什么初始容量总是2的n次方?
  • ConcurrentHashMap 和 Hashtable 的区别?
  • synchronized的使用方式、底层实现以及JDK1.6的优化?
  • 谈谈 synchronized和ReentrantLock 的区别?
  • Java内存模型及volatile实现原理?
  • volatile和synchronized的区别,volatile一定能替代synchronized吗?
  • CountDownLatch、CyclicBarrier、Semaphore、LockSupport和Exchanger?
  • ThreadLocal实现原理强引用、软引用、弱引用、虚引用?
  • JDK提供的并发容器CopyOnWrite、ArrayListBlockingQueue(阻塞队列FIFO)ConcurrentLinkedQueue(非阻塞队列)等实现方式?
  • CAS
  • ReentrantLock的实现?
  • 多线程的实现方式,start()是立刻启动吗?
  • ThreadPoolExecutor的重要参数?执行顺序?如何设置参数?
  • 什么是死锁,死锁的四个必要条件?
  • Java内存区域?
  • 对象的访问定位有哪两种方式?
  • 如何判断对象是否死亡?(两种方法)
  • 垃圾收集算法?常见的垃圾回收器?
  • JVM参数?JVM调优?Full GC的触发条件?
  • 一个线程OOM后,其他线程还能正常运行吗?
  • 类加载过程?类加载器?Java字节码文件结构?
  • BIO(Blocking I/O)、伪异步IO、NIO(New I/O)、AIO?
  • 数据库查询缓慢是什么原因,如何优化?
  • 索引实现?
  • 大表优化?
  • 如何实现MySQL的读写分离?
  • 数据库的乐观锁和悲观锁?
  • MySQL的锁机制?
  • 数据库事务的特性(ACID)和隔离级别?
  • MVCC实现可重复读?
  • RC隔离级别下,读A行数据,updateA 行数据,读B行数据,updateB行数据,再updateA行数据,请问加了几次锁?对A加锁是在什么时候加了几次锁?
  • MySQL的事务实现?何时加行锁?
  • Redis数据结构及各结构的内部实现?
  • Redis为什么快?
  • Redis通信协议?
  • Redis事务?
  • Redis 的过期策略以及内存淘汰机制?
  • Redis持久化方式?
  • Redis主从复制机制redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?
  • Redis 和 DB 一致性?缓存穿透?缓存击穿?缓存雪崩?缓存清洗?并发竞争Key?
  • Spring的优点,用到了哪些设计模式,IOC和AOP的理解?
  • Bean的生命周期?
  • 解释Spring支持的几种bean的作用域?
  • BeanFactory、FactoryBean的区别?
  • Spring如何处理单例Bean的循环依赖?
  • SpringMVC、Mybatis 执行过程?
  • Spring事务?
  • SpringBoot最大的优势(三连问)?
  • Spring Cloud Eureka 服务发现?
  • Ribbon负载均衡?
  • 为什么使用Dubbo?
  • Dubbo服务注册原理?
  • Dubbo提供的负载均衡策略?
  • 如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?
  • RabbitMQ Exchange 类型?
  • 如何保证消息顺序性?
  • 为什么使用消息队列?消息队列的缺点?常见的消息队列组件比较?
  • MQ如何保证高可用?
  • MQ如何处理重复消费?
  • RabbitMQ消息堆积?
  • MQ如何保证可靠传输?
  • ES的分布式架构原理?
  • ES写入数据的工作原理是什么啊?
  • 底层的 lucene 介绍一下呗?倒排索引了解吗?
  • ES在数据量很大的情况下(数十亿级别)如何提高查询效率?
  • ES 生产集群的部署架构是什么?
  • 分布式事务?
  • 使用哪些组件或者方法可以提升网站性能、可用性以及并发量?
  • 设计高可用(系统7×24小时不间断服务)系统的常用手段?
  • 如何设计高并发系统?
  • CAP和BASE理论?
  • 分布式 ID 生成器?
  • 基于 Redis 的分布式锁?
  • Redis分布式锁过期了但业务没执行完?
  • 内存溢出排查方法?CPU高负载排查方法?
  • 如何保障双11狂欢下的99.99%高可用?
  • 秒杀系统设计?

以上目录能覆盖一大部分考题,更加深入的底层原理、场景题等需要平时工作的沉淀思考以及框架源码的阅读总结。

建议平时工作之余,坚持阅读优秀的框架源码,这对面试答题以及日后编码具有极大的效应。以下列出部分推荐的源码:

  • Java基础:集合、JUC
  • DB:Redis、MongoDB、MySQL(任选其一,推荐Redis,相对简单)
  • ORM:Mybatis、Spring Data Jpa、Hibernate (任选其一,选平时工作中使用频率来选即可)
  • MQ:RabbitMQ、Kafka、RocketMQ、ActiveMQ(任选其一,选平时工作中使用频率来选即可,但还是推荐Kafka)
  • J2EE:Spring、Spring Boot
  • Web框架:Spring MVC、Spring Security、Spring Webflux(一般了解mvc即可,其他看兴趣)
  • 注册中心:Eureka、Zookeeper(任选其一,推荐Eureka)
  • 分布式事务:TCC Transaction、Seata、Fesar(任选其一,主要了解实现思路)
  • 其他:Zuul、Hystrix、Redisson、Netty、Dubbo、Ribbon、ES、HBase

常考的已加粗,重点阅读总结。

具体的阿里内推机会可关注公众号进行了解和交流。

阿里巴巴面经、面试流程、面试题相关推荐

  1. 美团java面试_2020年美团Java一面,美团面经面试流程面试题整理

    很多的从事Java的人都想要去美团工作,那么下面就给大家整理了一些小伙伴2020年美团Java一面的面试流程和具体面试问题及答案,下面一起来看看具体内容吧. 具体面试时间: 3.26笔试 3.30面试 ...

  2. 从0到25万人,阿里巴巴是如何面试的?(附模板)

    1.面试的痛点 企业在面试这个环节通常会遇到三个问题. 第一个问题是:不准.招聘进来的人和实际要的人能力模型不一致. 出现这个问题的原因一般是,人才画像不清晰,招聘者不知道自己要招聘什么样的人. 第二 ...

  3. 如何拿到阿里offer的?面试流程及面试题

    一个偶然的开始 交待一下(非广告),第一次用拉勾,感觉做的挺好,以前一直用51job. 从7月分开始,打算找工作,一个偶然的机会,拉勾上一个蚂蚁金服的同学找到我,说要内推,在此感谢姚同学! 然后就开始 ...

  4. 面试流程及常见面试题

    基础篇 参考这里的面试题:面试题写在后面了 能回答上百分之七十,基础的广度就算 OK 了.如果达不到,那么缺 什么就赶紧补什么.广度达到了,还需要对个别热点问题有深度.每 个人的精力都有限,可以适当挑 ...

  5. BAT Android工程师面试流程解析+还原最真实最完整的一线公司面试题

    尊重原创,转载请写明原文出处:http://blog.csdn.net/sk719887916/article/details/47040931 (skay) 求职和我们每个人息息相关,而求职也有门道 ...

  6. DD-∞-大数据面试流程及面试题

    DD-∞-大数据面试流程及面试题 Hive的四种排序 Hive的分区分桶 贷款的五级分类,正常.关注.次级.可疑.损失. 取3分钟内发生过多次教交易的客户,进行预警提示 hr问:工作地点要求,目前工作 ...

  7. 阿里巴巴python招聘_作为应届生,我在阿里巴巴的成功面试经历!

    我找工作时是2019年. 那一年,BAT大量缩招,就业形势严峻,互联网寒冬消息蔓延. 最终我经过激烈角逐拼下了几个大厂offer,回顾往事,觉得分享出来,也许对你能有所借鉴. 1.简历 这一年的7月初 ...

  8. 前辈们的面试经验总结——对于BAT等企业如何面试之面试流程及问题解析、以及面试时的基本礼仪及着装

    大纲 1.面试流程及问题解释 (一)简历:(二)笔试:(三)电话面试:(四)面试:(五)签约: 2.面试时的基本礼仪着装 1.面试流程及问题解释 无论是程序员还是其他职业的面试,虽然都是提交简历.电话 ...

  9. 看,2015年阿里巴巴视觉设计师的校招面试题

    前段时间看到阿里的校招,我果断投了一份简历,今天就去在线面试一下,特地把题目复制出来供大伙参考参考哈 阿里巴巴视觉设计师的校招面试题有点坑爹啊,虽然只有4道题,但是每题都很坑爹,考试时间是120分钟, ...

  10. BAT无线工程师面试流程详细解析

    原文出处:http://www.jianshu.com/users/3bbb1ddf4fd5 简书Tamic ,http://www.jianshu.com/p/f0d2ed1254a9 求职和我们每 ...

最新文章

  1. linux下c语言写文件,Linux下C语言之文件操作
  2. mockcpp的so加载失败问题
  3. window上安装elasticserach
  4. MYSQL为用户指定权限有哪些
  5. batch size 越大,学习率也要越大
  6. 关于C++默认拷贝构造函数产生的问题的讨论
  7. TC字符界面-菜单程序【原创】
  8. 用同一uuid作为两个字段的值_这两个小技巧,让SQL语句不仅躲了坑,还提升了 1000 倍...
  9. mysql视图表修复_mysql中含有视图数据库在恢复数据时视图变成数据表的解决方法...
  10. 获取指定时间的当天时间范围工具类
  11. Linux内核深入理解中断和异常(8):串口驱动程序
  12. date类型_Chapter 01. 常见数据类型概述 Overview of Common Data Types
  13. Caffe网络结构实现
  14. Nacos服务注册发现
  15. [数据挖掘笔记01] 关联规则Apriori算法
  16. 机器学习系列5---偏差和方差分解
  17. matlab 中 矩阵取平方,matlab中怎样计算一个矩阵中每个数的平方
  18. 网络爬虫js逆向解决网站登录RSA加密问题,不使用selenium如何实现登录,session维持登录状态请求爬取
  19. 苦禅箜mm让我帮她做的作业
  20. [前端面试经]百度和好未来的面试官把我榨干了

热门文章

  1. 企业级POS收银系统源码(客户端+后台)
  2. 现在主流的(大多数人用的)3DMAX是哪个版本?
  3. iOS开发入门学习路线
  4. java项目组会议纪要
  5. 网络信息安全之纵深防御
  6. ug二次开发python_UG/NX二次开发入门指导
  7. 串联和并联拓扑PI控制器
  8. 神奇软件:良心浏览器 纯净无捆绑,还有亿点点好用360极速浏览器X
  9. PCB板设计流程总结
  10. java 内置中介模式_详解Java设计模式编程中的中介者模式