蚂蚁金服一面:分布式架构 50分钟
1、个人介绍加项目介绍20分钟
2、微服务架构是什么,它的优缺点?
http://baijiahao.baidu.com/s?id=1600354904549354089&wfr=spider&for=pc
3、ACID CAP BASE理论
https://blog.csdn.net/zjcjava/article/details/78893368
4、分布式一致性协议,二段、三段、TCC,优缺点
https://blog.csdn.net/qq_40046779/article/details/84824450
5、RPC过程
https://blog.csdn.net/m0_38110132/article/details/81481454
6、服务注册中心宕机了怎么办?
https://blog.csdn.net/medtc/article/details/80306764
https://blog.csdn.net/nangeali/article/details/82556016
7、微服务还有其他什么组件
1. 服务治理。通常是采用注册发现的机制。有一个注册中心
2. 集中式配置
3. 反向代理
4. ADN, CDN
5. 分布式存储
6. 分布式日志
7. 分布式锁
8. 消息队列
9. 分布式文件存储
10. 断路器
11. 分布式数据库
8、分布式架构与微服务的关系
9、你有什么问题要问我的。
蚂蚁金服二面:1个小时
上来不用自我介绍,项目介绍,直接开始
算法来两道
1、各种排序算法、未排序常规数据查找第K大的数,时间复杂度。
https://www.cnblogs.com/onepixel/articles/7674659.html --排序算法,内有动图
https://blog.csdn.net/program_developer/article/details/82346599 --实现查找K大的数据,以及其时间复杂度
二叉树的深度
https://blog.csdn.net/lewyu521/article/details/81750405
操作系统来两道
3、虚拟内存分页了解不?
https://blog.csdn.net/lidelin10/article/details/80581100
4、进程和线程区别?
https://www.cnblogs.com/zhuzhu2016/p/5804875.html
数据库来三道
5、第一二三范式是什么?
https://blog.csdn.net/xidianliuy/article/details/51566576
6、一个表一千个列值为true和false,写sql 查询 有300个列值为true的行。
7、脏读和幻读是什么?
-
脏读:事务A读到了事务B未提交的数据。
-
不可重复读:事务A第一次查询得到一行记录row1,事务B提交修改后,事务A第二次查询得到row1,但列内容发生了变化。
-
幻读:事务A第一次查询得到一行记录row1,事务B提交修改后,事务A第二次查询得到两行记录row1和row2。
JVM
8、什么对象会从新生代晋升到老年代
http://www.51testing.com/html/94/319894-848533.html --JVM
https://www.cnblogs.com/kxm87/p/7205414.html
多线程
9、一个任务分成十个任务,最后汇总计算,不能用fork/join
https://blog.csdn.net/cc907566076/article/details/84937502 --Callable/Future
http://www.cnblogs.com/xrq730/p/5060921.html ---四十个线程问题
10、开源框架源码了解不?
https://blog.csdn.net/wolflion/article/details/5658949 --一般都从 spring 开始
11、数据建模两道、个人题开放性题
考验抽象总结能力,结构化分析,业务建模。
安全方面的问题
12、对安全方面了解多少?
13、 安全协议有哪些 、https是啥?
https://baijiahao.baidu.com/s?id=1597453025057289064&wfr=spider&for=pc
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
介绍你做的项目和其中的难点。
三面
个人感觉着重技术深度。
1、从ConcurrentHashMap一路问到锁&锁优化->LongAdder->伪共享->缓存行填充->cas等诸多技术细节;
2、从hystrix一路问到原理->自己如何实现->如何优化->响应流编程(reactive streams);
3、从简单的生产者消费者模式设计到如何高效健壮实现等等。
四面
1、如何倒序输出单向链表?
https://blog.csdn.net/FFFLLLLLL/article/details/51693298
https://blog.csdn.net/xingzhemoluo/article/details/40897053
个人直接想法是用栈先进后出的特点,把链表数据读到栈里然后输出。
3、有更好的实现方式吗?
4、主要问项目情况,然后根据一个项目,问如果量级扩大1000倍,你会怎么做?有哪些优化措施?高性能&高可用措施?
https://www.jianshu.com/p/fd9b2b90457e
https://www.jianshu.com/p/d9504fc0af4d
五面:HR面
给大家抛出几大深坑问题:
1、个人的职业规划是什么
2、你遇到的最大问题或者是困难是什么
3、你如何看待阿里
4、你能为阿里带来什么
5、你的优缺点是什么
这几个问题,大家深思啊,不多说。
面试总结:
1.技术基础必须扎实:算法、数据结构、操作系统等,蚂蚁金服面试对技术的基础非常重视,基础扎实的同学有利于在前两轮突出重围。
2.技术宽度:主要集中在高并发、多线程、分布式架构,大以及常用中间件(缓存等)的选型和比较。
3.技术原理深入:重点还是提前准备好JVM、多线程高并发这块。
4.参与的项目总结:你需要清楚你所做项目的关键细节、优化、特点、原理。
5.很多所用第三方库&中间件等的原理,即使你不知道,也要有自己的想法能够说出如何代替实现,比如单点登录的替代方案。
6.最好,提前准备一个大数据访问,比如pv扩大1000倍,你的架构或者技术方案应对措施。
7.最后,千万不要倒在HR面试环节,避重就轻是重点,特别是优点和缺点,如果问到你的规划是什么,请记得一定告诉HR你想成为一名优秀的技术专家!