第一轮
电话面试(基础知识为主,约2小时):
1,先自我介绍,包含日常工作
2,基础知识
1)多线程(ThreadLocal(问了父子线程怎么共享数据 interitableThreadLocals)、lock和sync区别(问HashMap1.7、1.8区别时带出)、AQS原理(执行过程源码,入队出队的细节,源码细节)、CountDownLatch和CyclicBarrier的区别是什么源码级别、volatile从指令重排序,内存屏障,聊到总线风暴)所占比重较大
多线程汇总
2)数据库(mysql索引(聚集索引、非聚集索引、索引结构(顺带会问各种树的特性)、执行计划、count1*区别、举例优化sql、MVCC和事务隔离级别的关系、间隙锁、行锁(和多线程混合问的,乐观锁悲观锁等)、唯一索引和普通索引的区别聊到了changeBuffer,聊了页分裂合页合并)比重较大
数据库汇总
3)jvm调优(可达性分析算法中根节点有哪些、cms和G1区别、怎样GC调优、怎样排查CPU飙高、内存飙高、逃逸分析)
JVM汇总
4)redis数据结构、跳跃表、redis qps能上多少,怎么知道的、sentinel和cluster区别和各自适用场景、redis cluster集群同步过程、redis单线程为什么快、多大叫大key、热key产生原因和后果以及怎么解决、本地缓存需要高时效性怎么办.....
Redis为什么快?你只知道单线程和基于内存?抱歉我不能给你offer...
面了6家大厂,我把问烂了的Redis常见面试题总结了一下(带答案)
大厂都喜欢这样问Redis,哨兵、持久化、主从、手撕LRU,我都整理好了
Redis面试题(2020最新版)
5)spring的作用、spring循环依赖怎么解决(说出三级缓存源码细节)、spring aop原理(动态代理)、spring bean生命周期(源码细节,以及各个位置的设计思路,有什么可扩展的)
Spring面试题(2020最新版)
6)dubbo服务暴露和引用过程,负载均衡策略,容错机制在哪里实现的源码
阿里面试官:你知道Dubbo的服务暴露机制么?
字节面试:dubbo的服务引用过程
Dubbo面试杀招--Dubbo集群容错负载均衡
7)项目中碰到的问题。
8)为什么换工作,如果通过会直接说有笔试题,和你确认笔试时间。
第二轮
笔试两道题,第一题写代码,第二题写技术方案,以查询为主,考察锁粒度、时间粒度上的细节点。
第三轮
电话面试(解决方案为主,约1.5个小时)
1,自我介绍、项目介绍
2,说到缓存穿透,让我设计一个防止缓存穿透的解决方案,简单的就是存null值,但肯定会深究,可以结合布隆过滤器,设计分布式系统,里面又会问到流量分发到具体过滤器服务的方式,比如一致性hash算法,怎么调用?比如dubbo直连、等等细节会边说边问。
3,有没有做限流,设计一个侵入性最小的限流服务。
4,项目中碰到的问题,最好说框架本身问题,能体现个人能力,也避免问题太低级被面试官看low,刚好之前有发现一个dubbo的bug,所以这问题应该回答的还可以。
5,为什么换工作,每轮都会问,这个得想好。
第四轮
电话面试(项目为主,40分钟,应该是交叉面,问的不算多)
1,介绍最熟悉的项目,业务上有没有什么优化点;和同行业其他公司的差距和优势(估计是P7的标准问题吧。。。我是没咋说好)
2,dubbo服务调用过程(说着说着说到服务暴露和引用上面,他直接说这个之前问过了。。不用重复说,所以面试应该有记录面试问题)
3,NIO、BIO区别,NIO解决了什么问题,Netty线程模型(源码拷问)。
Netty面试题(2020最新版)
4,MQ相关(RocketMQ、kafaka奇怪的是你写啥面试官问啥,面试官啥都会,技术广度深度令人发指)
消息中间件MQ与RabbitMQ面试题(2020最新版)
第五轮
电话面试(这位面试官比较较真,什么问题都会问具体数值,但和他挺聊得来的,向他请教阿里那边方案也会耐心指导,1.5小时)
1,项目介绍
2,听到说做了限流,限流标准(并发数? qps?并发数和qps关系?说出了5种限流方案和对应算法原理)
3,dubbo调用端怎么在jvm中生成对应服务?dubbo服务端和调用端超时时间设置和区别、dubbo长连接。
3,mysql行锁最大并发数?(秒杀项目指出)
MySQL数据库面试题(2020最新版)
面试必问干货!数据库索引和锁的知识!看完你就能拿offer
4,设计秒杀系统,我说的异步的方式,会问怎么优化?改为了同步的方式,异步和同步区别? 然后我也问了阿里那边
5,碰到哪些技术难点?怎么解决?有没有参考其他大厂?其他大厂方案什么样的?有没有关注阿里这边最新的技术?
6,刚刚的秒杀系统,会涉及到多个库表的更新,分布式事务怎么解决,我说的消息最终一致性,异步?有没有更好的方案?同步TCC方式,TCC方式原理?(三个阶段的具体实现)
面试官问我知道的分布式事务,我一口气说了六种
以上是技术面。
第六轮
主管视频面试:个人介绍、项目介绍为主,十五分钟结束。
第七轮
HR面试,项目介绍、职位介绍、离职原因、当前薪资,如果没什么问题,一天后会电话反馈待遇并确认是否接受。
不会问期望薪资是多少,后面会打电话告诉你评级是否接受,然后就开始安排体检了。
================================================================================================
面试阿里P6岗,需要掌握
- Java集合:HashMap和ConcurrentHashMap,平时最好有读一些源码,最好知道每个参数为什么设置成这么大?有什么好处?
Java集合:HashMap,ConcurrentHashMap,HashTable
阿里面试官没想到一个ArrayList,我都能跟他扯半小时
- JUC包肯定要学,即使平时的编程根本不用,也必须得会。至少要知道aba,cas,aqs,unsafe,volatile,sync,以及常见的各种lock,死锁,线程池参数等,也必须要明白自旋,阻塞,死锁和它如何去定位,oom如何定位问题,cpu过高如何定位等基本的操作,你可以没有生产调试经验,但不代表你可以不会top,jps,jstack,jmap这些可能会问的东西。以及可能衍生的jmm模型和mesi协议等。
阿里面试,问了我乐观锁、悲观锁、AQS、sync和Lock,这个回答让我拿了offer
- 大厂必问JVM:垃圾回收算法,垃圾收集器、JVM内存模型,每个区域用途,各种oom的种类,jvm调优经验,类加载过程,双亲委派等。
JVM架构和GC垃圾回收机制(JVM面试不用愁)
深入理解Java虚拟机-垃圾回收器与内存分配策略
看完这篇JVM,阿里面试官都不怕!看完就能拿offer
- Spring就得抽空看源码了,一般会问到bean的生命周期,如何解决循环依赖,实现事务原理,动态代理原理等。
Spring面试题(2020最新版)
- Dubbo也是必须问的,设计框架,负载均衡。
阿里面试官:你知道Dubbo的服务暴露机制么?
字节面试:dubbo的服务引用过程
Dubbo面试杀招--Dubbo集群容错负载均衡
- Redis更要多懂一点,单线程模型,aof,rdb,rewrite,主从,cluster,哪些类型?包含一些缓存常见的问题击穿、穿透、雪崩、数据一致性等。
Redis为什么快?你只知道单线程和基于内存?抱歉我不能给你offer...
面了6家大厂,我把问烂了的Redis常见面试题总结了一下(带答案)
大厂都喜欢这样问Redis,哨兵、持久化、主从、手撕LRU,我都整理好了
Redis面试题(2020最新版)
- Mysql,事务,锁,索引,b+树,主从这些你必须会
MySQL数据库面试题(2020最新版)
阿里面试:MySQL索引凭什么能让查询效率提高这么多?
【数据库调优】屡试不爽的面试连环combo
- Mq ,我用的rocketmq,你得知道为什么用,重复消费,顺序消息,事务消息,高可用,消息丢失,挤压场景,整个消息发送消费的流程,读过源码更佳,更好吹
消息中间件MQ与RabbitMQ面试题(2020最新版)
- Netty的话,零拷贝,bio,nio,aio,架构设计怎么样子的?用过看过更好
Netty面试题(2020最新版)
- 算法,建议去刷题,我运气好,简单的算法让我碰到了,一些快排,堆排,二叉树相关的,链表反转,成环,环节点,跳楼梯等常规的简单算法建议刷刷,双指针,dp,递归这些还是多找找感觉,大数据内存有限的场景的统计,有时间一些middle可以去试试,手写红黑树你要是可以,那我估计算法你稳了。
- 网络,http,tcp,https,udp,7层网络协议等,最好结合自己理解,背,你都要背下来。
重学TCP/IP协议和三次握手四次挥手
- 还有就是一些分布式事务实现,架构实现,比如抢红包,高并发下单等常规的场景设计,你来设计,你怎么去设计?多找一些大牛或者上网自己查,帮你看看有哪些漏洞,有哪些解决方案?业界有哪些好的中间件?
阿里一面:
- 自我介绍、自己做的项目和技术领域
- 说一下sync的底层实现,锁优化,和lock的对比
- 讲一下JVM参数调优详细过程
- 为什么这么设置?好处是什么?描述gc场景,如何去分析gc日志?
Java虚拟机(JVM)面试题(2020最新版)
JVM架构和GC垃圾回收机制(JVM面试不用愁)
深入理解Java虚拟机-垃圾回收器与内存分配策略
看完这篇JVM,阿里面试官都不怕!看完就能拿offer
- redis数据结构,使用场景,微博场景使用redis如何去设计用户关系?
- 线程池参数设定,为什么这么设定,作用?7大参数
- spring的循环依赖如何解决?为什么要三级缓存?
- 优先级队列的底层原理?
阿里二面:
- 自我介绍一下吧
- 聊项目
- 结合你项目问你如何设计,提出漏洞,你怎么解决?如何改进,万一挂了?加一台机器有没有问题?如果我非要不出问题怎么办?
- 高并发下单扣库存场景如何设计
- rocketMQ架构设计原理
- Dubbo框架实现原理
- 最近读了什么书?平时怎么学习?
- 常用的负载均衡,该怎么用,你能说下吗?
阿里三面:
- 这一面主要问项目,给你的压力感比较强
- 结合项目问,为什么这么设计?让你去优化,你怎么优化,引导你用一个合理的更好的方式去优化,数据库的设计等
- 在公司做了什么事情,各个系统业务线都是做什么的,你的绩效,手写算法链表反转?
阿里四面:
- JVM的主要组成部分及其作用?
- JVM运行时数据区包含哪些?
- JVM垃圾回收机制,何时触发MinorGC等操作
- JVM的垃圾回收算法:
- JVM 调优的工具?
- 常用的JVM调优参数?
- 堆栈的区别?
- 详细介绍一下 CMS 垃圾回收器?
- 怎么判断对象是否可以被回收?
- 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
Java虚拟机(JVM)面试题(2020最新版)
JVM架构和GC垃圾回收机制(JVM面试不用愁)
深入理解Java虚拟机-垃圾回收器与内存分配策略
看完这篇JVM,阿里面试官都不怕!看完就能拿offer
- java类加载过程?
- 把你知道的中间件都说一下吧(瞬间懵了一下)
HR面:
- 为什么来阿里?
- 之前没考虑过阿里吗?
- 毕业这么久了,你觉得自己最大的改变是什么?
- 用一句话总结一下自己