V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
melonzzz
V2EX  ›  职场话题

[咱也不敢问系列]菜鸡的蚂蚁全挂面经

  melonzzz · 2019-04-25 15:53:45 +08:00 · 19930 次点击
这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。

说说自己的体验吧,经验的关系,能得到的面试不多,不过还是很幸运的能被大佬挑上简历,而且渣渣还能面俩部门,贼带劲儿.自己比较菜啊,简直就是在拿大厂刷经验,也发现了自己很多很多不会的东西.虽然挂了,但还是坚定了自己奔大厂的决心,福报啥的 emmm...后话了,继续加油~
PS: 蚂蚁的效率挺高的,反馈很快(隔天通知下一面或者通知你 GG 的邮件)...

加粗:求和大佬一起讨论所有的问题,找找正确答案

蚂蚁金服财富事业群一面

  1. TreeSet/HashSet 区别
  2. HashMap 如何解决冲突,扩容机制
  3. ConcurrentHashMap 如何做到高并发的
  4. 线程池平常怎么用
  5. 多个线程等待到某一节点然后统一放行有几种实现方式?
  6. 数据库索引结构
  7. select * from t where a=? and b>? order by c limit 0,100 如何加索引
  8. 什么是聚簇索引和非聚簇索引
  9. 介绍下 Fescar/了解 CAP 吗?redis 里的 CAP 是怎样的?
  10. 如何理解幂等?项目中接口的幂等是如何做的?
  11. 算法题:两个有序的 list,求交集

蚂蚁金服财富 二面(两次电话面试)

第一次电面
  1. 解释下乐观锁悲观锁
  2. JVM 判断对象是否回收?
  3. 反射能获得类里面方法的名称吗?参数名称呢?参数类型呢?
  4. 动态代理的实现方式?CgLib 和 jdk 的代理有什么区别?
  5. 分布式锁有哪些主流实现方式?redis 和 zk 锁有什么区别?
  6. ThreadLocal 作用是什么?说下用法
  7. 设计秒杀系统要考虑哪些点? 数据预热,CDN 缓存,超卖问题,流量削峰
  8. 从性能角度上如何保证秒杀系统稳定? 觉得应该是预热,削峰,库存扣减的操作放到缓存,减少数据库的访问
  9. A,B 系统转账如何保证分布式数据一致性?
  10. 你有什么想问的?
第二次电面
  1. 简单介绍下自己的近况
  2. 对 kafka 了解吗?Rocketmq 事务性消息怎么实现的?
  3. 假设事务提交的消息丢了,没有发到 broker 上面,会怎么处理?
  4. 分布式事务一致性如何保证?
  5. 二阶段提交解释下,如果本地事务超时会怎样处理?一阶段都可以 commit,二阶段的时候协调器发送全局提交的消息,这个时候消息发送失败了会怎么处理?
  6. TCC 对异常流是如何操作的?
  7. 为什么要看开源代码?
  8. 最终一致性如何实现的?
  9. 有没有遇到过死锁?
  10. A 往 B 转钱,B 往 A 转钱,同时的会死锁吗?如何解决死锁?
  11. 设计一个全局唯一流水号? ​ https://tech.meituan.com/2019/03/07/open-source-project-leaf.html
  12. 设计幂等方案防止重复提交? ​ 进页面的时候生成一个 token,请求带 token 过来,校验 token
  13. 大数相加
  14. 工厂方法模式一般如何实现?
  15. 单例模式
  16. 其他的设计模式
  17. 再答一下上次的秒杀系统
  18. 写金融类的系统有什么需要关注的地方?
  19. 非功能性的设计关注那些? ​ 其实想问你日志规范,代码规范之类的
  20. 你有什么想问的?

蚂蚁三面

  1. 如何提前发现你的数据有问题,而不是等到用户反馈才知道?

  2. 如何防止超卖?

  3. 为什么要用 Redis?为什么没有用 db? 数据量不小,查一次耗时长

  4. 有没有 QPS?(没有统计过指标)

  5. 如何部署?(阿里云采购)

  6. 发生过丢消息的情况吗?为什么会丢失? rocket 保证消息不丢失

  7. 项目的过程中哪个点比较难?

  8. 项目中为什么要用 ThreadLocal 去做租户的隔离?

  9. 项目有什么缺点?

  10. 100 亿行数据,每个数字 32 位,取最小的的数字

  11. 有没有碰到特别难的事情,如何解决的?

  12. 业界中间件有什么了解吗?讲一个你深度理解原理的.

  13. 高并发的问题有遇到过吗?分布式锁是排他的,如何提升存储效率? ​ 遇到的不多,但如果请求比较多的话会用分布式锁来解决,这么说也不对.应该是递进关系的,后面就给自己挖坑了 ​ 分布式锁是排他的,如何提升存储效率,应该是吞吐量的意思吧

  14. 有遇到过很大的流量吗? ​ 没有

  15. 描述产生一次 fullGC 的整个过程 ​ fullGC 解析

  16. 平时通过什么来提升自己 ​ 通过博客 /技术书籍

  17. 你有什么问题? (您觉得我的短板在于?) ​ 没有互联网的思维,不会估算系统容量就往上发,这怎么能行,数据双写如何保证一致 ​

蚂蚁金服国际事业群一面

头一天约了时间,第二天准时打电话过来了,整体下来偏基础,发现自己 JVM 相关菜的一笔,要好好补补,重新看一遍深入理解 java 虚拟机了

  1. 简单介绍下自己和项目 blablabla....

  2. 你觉得项目里最大的挑战是什么? 答得项目的设计和推动

  3. 为什么选择用 rocketmq? 公司推的呗

  4. 对 rocketmq 的了解?基本原理 发布订阅,服务注册,消息丢失的情况(几种情况:producer down,broker down,consumer down)

  5. 消息如何顺序? 单一队列,多队列分区顺序

  6. rocketmq 事务消息,producer 如果 down 掉,事务无法提交这种情况 https://github.com/apache/rocketmq/blob/master/docs/cn/design.md

  7. rocketmq 是强一致性还是弱一致性

  8. 消息重复如何解决?可以在中间件层解决吗?MQ 体系协议了解吗? 业务层幂等,中间件层 kafka 有做过这个处理,不了解

  9. ThreadLocal 是怎样的概念?如何实现线程隔离的?基于这个原理有没有更加优化的方式? ​ 这个优化让我懵逼了

  10. 线程池用 ThreadLocal 有什么问题?有什么思路来让业务方不去关注 ThreadLocal 的 set ​ ThreadLocal 在线程复用的时候值可能不是最新的,需要每次都 set

  11. 你说你用过 dubbo,那看过 netty 源码吗?
    ​ 不好意思没有....(那你回去看一下 netty 里的 FastThreadLocal,对 threadLocal 有优化) ​ https://blog.csdn.net/TheLudlows/article/details/85267651

  12. 讲讲 dubbo 的基本原理

  13. JVM 调优?
    ​ 没做过,说了下公司的一些 JVM 参数

  14. 频繁 YGC 如何排查?
    ​ 支支吾吾半天....

  15. 换个问题,为什么会发生 YGC?

  16. 如果知道哪些对象需要被回收?
    ​ GCROOT

  17. GCROOT 有哪些?

  18. 栈和堆有什么区别?

  19. 什么时候会压栈?

  20. 程序都是线程在执行,线程和栈和堆的关系? ​ 懵逼了,后来发现是想问,栈线程私有,堆公共,一时没想起来

  21. HashMap 如何实现?为什么会变红黑树呢?如何扩容?为什么是两倍?什么时候会用到位运算?
    ​ hashmap 到处都是位运算,居然只答出来一个扩容的,脑残 ​ indexFor 取位置的时候也是用的位运算 h&length-1 ​ 有提到扩容的问题.扩容两倍的原因,也是为了取模可以通过上面这个&操作来做提升性能,%据说慢十倍,咱也不知道,咱也不敢问 ​ https://blog.csdn.net/u014532901/article/details/78936283

  22. 你有什么想问的?

第 1 条附言  ·  2019-04-25 22:16:41 +08:00
大佬的建议和大家一起共勉,加油鸭~

https://www.v2ex.com/t/558746
126 条回复    2019-05-06 12:11:06 +08:00
1  2  
fantastM
    101
fantastM  
   2019-04-26 10:15:18 +08:00
翻页
melonzzz
    102
melonzzz  
OP
   2019-04-26 10:29:45 +08:00
@fantastM 稳准狠
shaojz2005
    103
shaojz2005  
   2019-04-26 10:47:06 +08:00
会不会是面试造飞机,工作拧螺丝呢?
weo0
    104
weo0  
   2019-04-26 10:52:26 +08:00
@shaojz2005 对我来说 像造核弹
johz
    105
johz  
   2019-04-26 10:54:09 +08:00
@zy445566 自己先试试,不要误人子弟
eamon666
    106
eamon666  
   2019-04-26 11:00:14 +08:00   ❤️ 1
@woyixinyiyi

首先 explain 的时候要避免 type=all 和 filesort 这两个出现
比如条件是 a>10 b=5 我索引弄成 a,b 也是能用到 a 这个部分的 但是 b 就用不到了
但是如果索引是 b,a 就会完全用到索引。

另外就是 order by 这个
如果你 select c order by c 索引是 c 开头 是可以用的上的
但是 select * order by c 这就不行了

所以这道题是有陷阱的,你要考虑到表中是否是只有 abc 三个字段 那么答案是唯一的 cab

否则就是 ab。也就是说我之前也说的不对。

这道题表面是考最左匹配 其实也包含了聚簇索引相关知识。
yazoox
    107
yazoox  
   2019-04-26 11:02:51 +08:00 via Android
学习一下
UnknownR
    108
UnknownR  
   2019-04-26 11:15:07 +08:00
马克
wps353
    109
wps353  
   2019-04-26 11:28:42 +08:00
@eamon666 我更倾向于(a,c,b)
eamon666
    110
eamon666  
   2019-04-26 11:29:29 +08:00
@wps353 file sort
exonuclease
    111
exonuclease  
   2019-04-26 12:16:50 +08:00 via iPhone
咸鱼随便答一下 不会 java 只会 cpp
TreeSet/HashSet 区别
这两个就是 set 和 unordered_set 吧 一个是红黑树一个是哈希表 复杂度不一样 一个有序一个无序
HashMap 如何解决冲突,扩容机制
链地址法 每次扩张 2 倍
ConcurrentHashMap 如何做到高并发的
我猜是锁在桶的级别
线程池平常怎么用
。。。要用就抓一个用完了放回去啊
多个线程等待到某一节点然后统一放行有几种实现方式?
条件变量就完事了
数据库索引结构
B 树?多叉查找树反正
select * from t where a=? and b>? order by c limit 0,100 如何加索引
不会
什么是聚簇索引和非聚簇索引
不会
介绍下 Fescar/了解 CAP 吗?redis 里的 CAP 是怎样的?
不会
如何理解幂等?项目中接口的幂等是如何做的?
多次调用结果相同 无副作用 能不能做到幂等看啥业务啊
算法题:两个有序的 list,求交集
从前往后扫 一样就 push 进结果不然挪一下小的那个指针
dyllanwli
    112
dyllanwli  
   2019-04-26 13:41:59 +08:00
感谢一下
mineqiqi
    113
mineqiqi  
   2019-04-26 14:16:18 +08:00
咱也不知道,咱也不敢问啊
junan0708
    114
junan0708  
   2019-04-26 15:12:12 +08:00
select * from t where a=? and b>? order by c limit 0,100 如何加索引 加 acb 或者 ac , 查到 a 之后 c 是有序的,acb 的话主要是可以减少回表
ytmsdy
    115
ytmsdy  
   2019-04-26 15:20:07 +08:00
这面试题感觉不是造导弹啊,是要造核弹啊!
dfc572364
    116
dfc572364  
   2019-04-28 07:46:57 +08:00
流弊
StephenW
    117
StephenW  
   2019-04-28 10:47:10 +08:00
从问的问题来看,难度偏高了点,主要是因为你是社招一年的。如果是 3 年的,问几个弱鸡问题有没有解决经验就可以了

另外,问的问题真的是造核弹,入职后你会发现就是把螺丝拧松开再拧上
nonprocoder
    118
nonprocoder  
   2019-04-28 10:56:17 +08:00
这些能用到吗,90%的程序员都是写 crud 代码,调 API
ysy2017
    119
ysy2017  
   2019-04-28 14:13:49 +08:00
@StephenW 应该不是这样的,他们是专门负责把候选人问懵逼了,然后才可以给人定级,说不定楼主是 1 年的 p8 呢
StephenW
    120
StephenW  
   2019-04-28 14:20:46 +08:00
@ysy2017 我要是告诉你财富事业部就是我们这边呢,面试的套路基本上每个组都差不多

主要因为 LZ 是一年的,面点吊炸天的东西说服 HR 招你进来,3 年的水平真的是划划水面面大差不差就给 6 了
ysy2017
    121
ysy2017  
   2019-04-28 14:42:09 +08:00
@StephenW soga 财富事业部 今年绩效怎么样啊
melonzzz
    122
melonzzz  
OP
   2019-04-28 14:50:01 +08:00 via Android
@StephenW 还有这种操作……🌚
chunrong918
    123
chunrong918  
   2019-04-28 21:33:37 +08:00
@StephenW 划划水是什么问法
chunrong918
    124
chunrong918  
   2019-04-28 21:51:14 +08:00
select * from t where a=? and b>? order by c limit 0,100 如何加索引

这道题怎么解答?
linbiaye
    125
linbiaye  
   2019-04-28 23:07:59 +08:00
你这不是全挂啊?都到了好几面了。
kangkag0231
    126
kangkag0231  
   2019-05-06 12:11:06 +08:00
可以
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2680 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 06:46 · PVG 14:46 · LAX 22:46 · JFK 01:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.