Java 高级知识体系,kalilinux 新手教程,Java 实习面试经验汇总
蚂蚁金服一面:分布式架构 50 分钟
个人介绍加项目介绍 20 分钟
微服务架构是什么,它的优缺点?
ACID CAP BASE 理论
分布式一致性协议,二段、三段、TCC,优缺点
RPC 过程
服务注册中心宕机了怎么办?
微服务还有其他什么组件
分布式架构与微服务的关系
你有什么问题要问我的。
蚂蚁金服二面:1 个小时
上来不用自我介绍,项目介绍,直接开始
算法来两道
各种排序算法、未排序常规数据查找第 K 大的数,时间复杂度。
二叉树的深度
操作系统来两道
虚拟内存分页了解不?
进程和线程区别?
数据库来三道
第一二三范式是什么?
一个表一千个列值为 true 和 false,写 sql 查询 有 300 个列值为 true 的行。
脏读和幻读是什么?
JVM
什么对象会从新生代晋升到老年代
多线程
一个任务分成十个任务,最后汇总计算,不能用 fork/join
开源框架源码了解不?
数据建模两道、个人题开放性题
安全方面的问题
对安全方面了解多少?
安全协议有哪些 、https 是啥?
介绍你做的项目和其中的难点。
三面
个人感觉着重技术深度。
从 ConcurrentHashMap 一路问到锁 &锁优化->LongAdder->伪共享->缓存行填充->cas 等诸多技术细节;
从 hystrix 一路问到原理->自己如何实现->如何优化->响应流编程(reactive streams);
从简单的生产者消费者模式设计到如何高效健壮实现等等。
四面
如何倒序输出单向链表?
个人直接想法是用栈先进后出的特点,把链表数据读到栈里然后输出。
有更好的实现方式吗?
主要问项目情况,然后根据一个项目,问如果量级扩大 1000 倍,你会怎么做?有哪些优化措施?高性能 &高可用措施?
五面:HR 面
给大家抛出几大深坑问题:
个人的职业规划是什么
你遇到的最大问题或者是困难是什么
你如何看待阿里
你能为阿里带来什么
你的优缺点是什么
这几个问题,大家深思啊,不多说。
面试总结:
技术基础必须扎实:算法、数据结构、操作系统等,蚂蚁金服面试对技术的基础非常重视,基础扎实的同学有利于在前两轮突出重围。
技术宽度:主要集中在高并发、多线程、分布式架构,大以及常用中间件(缓存等)的选型和比较。
技术原理深入:重点还是提前准备好 JVM、多线程高并发这块。
参与的项目总结:你需要清楚你所做项目的关键细节、优化、特点、原理。
很多所用第三方库 &中间件等的原理,即使你不知道,也要有自己的想法能够说出如何代替实现,比如单点登录的替代方案。
最好,提前准备一个大数据访问,比如 pv 扩大 1000 倍,你的架构或者技术方案应对措施。
最后,千万不要倒在 HR 面试环节,避重就轻是重点,特别是优点和缺点,如果问到你的规划是什么,请记得一定告诉 HR 你想成为一名优秀的技术专家!
以上就是我的总结,这些都是不断面试积累来的经验,分享出来避免更多同学少走弯路,早日进入 BAT 等一线互联网公司!
最后
金三银四到了,送上一个小福利!
评论