「Java岗」5年经验,7面阿里,“过五关斩六将”拿下P7
前言今年的大环境非常差 , 互联网企业裁员的现象比往年更严重了 , 可今年刚好是我的第一个“五年计划”截止的时间点 , 说什么也不能够耽搁了 , 所以早早准备的跳槽也在疫情好转之后开始进行了 。 但是 , 不得不说 , 这次阿里面试真的太难为我了 , 可以说是和面试官大战了7个回合 , 不过好在最后给了offer 。
我个人情况是5年Java后台经验 , 阿里定级P7的样子 , 下面是我的面试经历分享 , 希望能带来一些不一样的启发和帮助 。
文章插图
我与阿里面试官“大战”7回合 , 胜第一轮:
第一轮面试是电话面 , 以基础知识为主 , 前后大概2个小时左右 , 这个阶段我是比较紧张的 。
- 先自我介绍 , 包含日常工作
- 多线程 , ThreadLocal , 问了父子线程怎么共享数据 interitableThreadLocals
- Lock和Sync的区别
- AQS原理(执行过程源码 , 入队出队的细节 , 源码细节)
- CountDownLatch和CyclicBarrier的区别是什么源码级别
- volatile从指令重排序 , 内存屏障
- 数据库 , MySQL索引 , 执行计划、count1*区别、举例优化sql、MVCC和事务隔离级别的关系、间隙锁、行锁
- JVM调优(可达性分析算法中根节点有哪些、cms和G1区别、怎样GC调优、怎样排查CPU彪高、内存彪高、逃逸分析)
- redis数据结构、跳跃表、redis qps能上多少 , 怎么知道的、sentinel和cluster区别和各自适用场景、redis cluster集群同步过程、redis单线程为什么快、多大叫大key、热key产生原因和后果以及怎么解决、本地缓存需要高时效性怎么办?
- spring的作用、spring循环依赖怎么解决(说出三级缓存源码细节)、spring aop原理(动态代理)、spring bean生命周期(源码细节 , 以及各个位置的设计思路 , 有什么可扩展的)
- dubbo服务暴露和引用过程 , 负载均衡策略 , 容错机制在哪里实现的源码
- 项目中碰到的问题 。
- 为什么换工作 , 如果通过会直接说有笔试题 , 和你确认笔试时间 。
第二轮是笔试 , 总共两道题 , 第一题是写代码 , 第二题是写技术方案 。
- 主要是以查询为主 , 考察锁粒度、时间粒度上的细节点 。 (详细省略)
第三轮是现场面试 , 这一轮面试以解决方案为主 , 前后大概约1小时20分钟 。
- 缓存穿透 , 让我设计一个防止缓存穿透的解决方案 , 简单的就是存null值 , 但肯定会深究 , 可以结合布隆过滤器 , 设计分布式系统 , 里面又会问到流量分发到具体过滤器服务的方式 , 比如一致性hash算法 , 怎么调用?比如dubbo直连、等等细节会边说边问 。
- 有没有做限流 , 设计一个侵入性最小的限流服务 。
- 项目中碰到的问题 , 最好说框架本身问题 , 能体现个人能力 , 也避免问题太低级被面试官看low , 刚好之前有发现一个dubbo的bug , 所以这问题应该回答的还可以 。
- 为什么换工作 , 每轮都会问 , 这个得想好 。
交叉面 , 项目为主 , 时间大概为40分钟 , 问的内容不多 , 这个阶段我个人的状态比较放松了 , 与面试官交谈的方式也自然了许多 。
- 介绍最熟悉的项目 , 业务上有没有什么优化点;和同行业其他公司的差距和优势(估计是P7的标准问题 , 总之我回答得不是太好)
- Dubbo服务调用过程
- NIO、BIO区别 , NIO解决了什么问题 , Netty线程模型(源码拷问) 。
- MQ相关
这轮面试真的让我比较为难了 , 面试官问什么问题都会问到具体的数值 , 状态又变紧张了 , 如履薄冰啊 。
- 项目介绍
- 听到说做了限流 , 限流标准(并发数? qps?并发数和qps关系?说出了5种限流方案和对应算法原理)
- dubbo调用端怎么在jvm中生成对应服务?dubbo服务端和调用端超时时间设置和区别、dubbo长连接 。
- mysql行锁最大并发数?(秒杀项目指出)
- 设计秒杀系统 , 我说的异步的方式 , 会问怎么优化?改为了同步的方式 , 异步和同步区别? 然后我也问了阿里那边
- 碰到哪些技术难点?怎么解决?有没有参考其他大厂?其他大厂方案什么样的?有没有关注阿里这边最新的技术?
- 刚刚的秒杀系统 , 会涉及到多个库表的更新 , 分布式事务怎么解决 , 我说的消息最终一致性 , 异步?有没有更好的方案?同步TCC方式 , TCC方式原理?(三个阶段的具体实现)
- javascript|手机移动端的PyTorch来了,还支持JavaScript
- 彼尔姆|机器人公司想用 20 万美元「买断」你的脸,如果它足够友好
- 融资丨端到端通用AI智能制造平台提供商「依瞳科技」完成新一轮融资,卓源资本领投
- 新浪科技|蜂花、拉夏贝尔学会了「鸿星尔克式营销」,但结局却完全不同
- mp4|Web前端培训:学习JavaScript重要知识点有哪些?
- 原叶茶|联合利华「贱卖」立顿,袋泡茶的国产替代来了?丨氪金Lite
- 计费规则|关于「高德打车」用户体验的若干思考
- 新疆维吾尔自治区|Java程序员应该知道的20个有用的库
- CPU|「小狮子诊所」内存时序到底有什么作用?
- javascript|三星Galaxy S21+降2890,为什么依然卖不动?