面经分享 | 2年经验,1个月拿下阿里P6 Offer
这些面试题来自于我的老乡读者分享,很厉害,2年经验,面试几个月拿下了N个Offer,包括滴滴、有赞和阿里这些一二线公司。
内容完全来自读者自己,引用部分为读者自身回答描述,感谢分享。阿里的在最后部分。
酷乐家
redis集群使用,宕机怎么处理 mysql分库分表,数据怎么做分片 mysql索引了解和优化经历 Zk数据同步,崩溃恢复 docker k8s常用打包命令 docker和虚拟机的区别 volatile和synchronize关键字 hashMap特性 Zk锁之间的节点同步
兑吧科技
一面
业务中redis集群的使用
mysql索引,explain命令的结果
场景问题:生产日志每天打10个G,怎么防止日志打满磁盘。
场景问题:设计不同用户角色的菜单和功能权限。
本地内存的了解。场景题:怎么实现更新所有集群中的机器中的本地内存。
我回答了rocketMQ的广播模式
二面
场景问题:大量的http请求怎么识别客户的身份
根据IP和用户行为做用户标签。
和电信移动等营业商合作,根据手机号码直接获取用户信息
日志区别生产和线上
标志识别(时间戳或者ip)
reactor模型的了解,它和面向结构编程的本质区别
JVM的调优经历和垃圾回收
synchronized锁和concurrent包下面的常见工具类的了解。
场景问题:怎么设计一个高并发的应用,从单体演变为分布式系统的过程。
同花顺
一面
项目经验 redis数据分片机制 看的书籍,介绍印象深刻的 用list手写一个线程安全的队列。
二面
介绍一下项目亮点,痛点和解决的过程。
怎么解决分布式事务,用rocketmq是否存在消息丢失的场合,怎么做补偿
业务中数据模型,设计的时候怎么抽象表结构的。
分布式锁对扣减库存的性能影响,并发量大用乐观锁将压力转移到mysql是否合理
日常怎么处理微服务之间的链路追踪,traceId和大数据日志采集的实现原理
redis的缓存穿透、击穿、雪崩怎么处理,布隆过滤器
redis单线程效率高的原因
redis多路复用
netty的reactor模型
限流策略,sentinel的了解
在工作中的不足,怎么弥补?
顺丰科技
一面
项目复杂度的体现和用到的设计模式,下游服务的认知,订单系统拆单逻辑。
分布式锁,查库存和扣减库存原子性
分布式事务,订单和库存的事务一致性
多个系统之间数据同步, 发布订阅,初始化数据,增量binglog同步。
增量数据除了binglog怎么同步?
通过version版本号,每次主动拉取更新数据查询version比自己大的数据,进行更新。
Spring IOC,AOP
AOP是在什么时候加载的,容器怎么加载bean
Spring三级缓存怎么解决循环依赖
mybatis拦截器动态代理底层怎么找到XML,怎么执行sql
快递订单中,有收件人和寄件人,怎么查询某个用户的快递订单(这个用户有可能是收件人也可能是寄件人)
查询:where 收件人=xx or 寄件人 =xx
用union 或者union all查询,建立组合索引
敏捷开发的了解
最近看什么书,辞职理由
二面
项目架构的描述、数据库表结构的设计
网关层怎么做限流
漏斗、令牌桶、滑动窗口(sentinel)
RMQ保证事务一致性
redis集群
算法:有一棵树,每个节点可能有多个子节点,描述这种数据结构并且遍历
第一种思路:子节点属性用集合描述:List
childen;递归遍历 第二种思路:当作变形的二叉树,左子树是一个单一节点的部分,右子树是一颗大树,遍历也要递归,复杂度很高。
有赞
一面
项目经验 垃圾回收算法,对CMS的了解 初始标记和并发标记的区别 Spring相关 redis MySQL RMQ 分库分表的运用 JVM锁 hashmap1.7和1.8的特效,1.8是否线程安全 chm epoll poll select的区别 文件描述符
二面
业务场景 redis分布式锁 分布式事务 rocketmq
乌鸫科技
一面
sentinel结合dubbo做限流 怎么实现单例,怎么破坏单例
二面
线程池 类加载机制,分别加载了哪些对象 tomcat加载了哪个类加载器 jvm内存模型 垃圾回收算法,CMS,三色标记法 JVM调优 分布式ID生成算法 秒杀场景设计,解决超卖的设计 MySQL索引设计, select * from table where a=1,b= 1 and c>2 and d=3 order by e
怎么索引建立redis分布式锁怎么实现
阿里集团
一面
分布式锁的多种设计 mysql分库分表 秒杀的设计 DDD领域设计 分布式事务常见的解决方案 redis集群 hashMap、chm 事务的特性
二面
业务场景50分钟,深挖业务的设计,数据库模型的设计,设计的缺陷和替代的设计方案。 mysql索引的优化、隔离级别、mvcc、redo和binglog写入时机,同步机制。 JVM优化经历 rocketmq的深入 volatile和synchronize dubbo的流程,对称加密和非对称加密、spi、负载均衡算法 算法leetcode随机抽一题,不需要运算通过,基本不卡人
三面
纯业务的理解和行业领域的认识50分钟
四面
项目的价值,在工作中的职责,做了哪些事情
开源框架的了解,netty的了解,怎么实现一个聊天客户端
设计一个rpc框架,dubbo怎么用线程实现同步调用,具体需要几个线程
答不出
看的书籍,收获、个人职业规划等
总结
2年的话感觉问的东西不是很难,把你那些我要进大厂的东西看一看,是一个知识概览。然后大厂对于每个知识会问的比较深入,看的话要平时多看书,也可以看看极客时间的各个文章。
项目经验很重要,一般在各个中台的核心业务,例如交易 商品 营销 支付,做过这些东西并且能总结出项目的内容和难点大厂一般都要。
面试就这样,看完觉得怎么样,实际上这些问题我基本上90%都写过了,关注我回复【PDF】就可以获取面试攻略了。
PDF第二版本暂未更新,想看全部文章可以查看公众号面试大全标签下文章,或者关注我的github,我会同步更新文章MD文件,地址:https://github.com/irwinai/JavaInterview
往期推荐