工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7

 

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第1张图片

 

为了准备面试蚂蚁成功入职和很多的前辈要了学习导图和很多的面试文档,视频,就是想进自己心仪的公司。(文末有分享),大家一起进步。

一面是 上海的小哥打来的,3.12号中午确认的内推,下午就打来约时间了,也是唯一一个约时间的面试官。约的晚上八点。紧张的一比。

一面(微信电话面)

第一面是微信电话面试,本来是想直接电话面,但面试官说需要手写算法题,就改成微信电话面。

●自我介绍

●先了解一下Java基础吧,什么是内存泄漏和内存溢出? (溢出是指创建太多对象导致内存空间不足,泄漏是无用对象没有回收)

●JVM怎么判断对象是无用对象? (根搜索算法 ,从GC Root出发,对象没有引用,就判定为无用对象)

●根搜索算法中的根节点可以是哪些对象? (类对象,虚拟机栈的对象,常量引用的对象)

●重载和重写的区别? (重载发生在同个类,方法名相同,参数列表不同;重写是父子类之间的行为,方法名好参数列表都相同,方法体内的程序不同)

●重写有什么限制没有?

●Java有哪些同步 工具? (synchronized和Lock)

●这两者有什么区别?

●ArrayList和LinkedList的区别? (ArrayList基于数组, 搜索快,增删元素慢,LinkedList基于链表,增删快,搜索因为要遍历元素所以效率低)

●这两种集合哪个比较占内存? (看情况的,ArrayList如果有扩容并且元素没占满数组的话,浪费的内存空间也是比较多的,但-般情况下,LinkedList占用的内存会相对多点,因为每个元素都包含了指向前后节点的指针)

●说一下HashMap的底层结构(数组+链表,链表过长变成红黑树)

●HashMap为什么 线程不安全,1.7版本之前HashMap有什么问题(扩容时多线程操作可能会导致链表成环的出现,然后调用get方法会死循环)

●了解ConcurrentHashMap吗? 说一-下它为什么能线程安全(用了分段锁)

哪些方法需要锁住整个集合的? (读取size的时候 )

看你简历写着你了解RPC啊,那你说下RPC的整个过程? (从客户 端发起请求,到socket传输,然后服务端处理消息,以及怎么序列化之类的都大概讲了一下)

服务端获取客户端要调用的接口信息后,怎么找到对应的实现类的? (反射+注解吧,这里也不是很懂)

dubbo的负载均衡有几种算法? (随机,轮询,最少活跃请求数,一致性hash)

你说的最少活跃数算法是怎么回事? (服务提供 者有一一个计数器,记录当前同时请求个数,值越小说明该服务器负载越小,路由器会优先选择该服务器)

服务端怎么知道客户端要调用的算法的? (socket传递 消息过来的时候会把算法策略传递给服务端)

你用过redis做分布式锁是吧,你们是自己写的工具类吗? (不是, 我们用redission做分布式锁)

线程拿到key后是怎么保证不死锁的呢? (给这 个key加.上一个过期时间)

如果这个过期时间到了,但是业务程序还没处理完,该怎么办? (.额...可. 以在业务逻辑.上保证幂等性吧)

那如果多个业务都用到分布式锁的话,每个业务都要保证幂等性了,有没有更好的方法? (...思考 了下暂时没有头绪,面试官就说那先跳过吧。事后我了解到

redission本身是有个看门狗的监控线程的,如果检测到key被持有的话就会再次重至过期时间)

你那边有纸和笔吧,写一道算法,用两个栈模拟-一个队列的入队和出队。(因为之前复习的时候对这道题有印象,写的时候也比较快,大概是用了五分钟,然后就拍成图片发给了面试官,对方看完后表示没问题就结束了面试。)

第一面问的不算难,问题也都是偏基础之类的,虽然答得不算完美,但过程还是比较顺利的。几天之后,Bigo的hr就邀请我去他们公司参加现场面试。

二面

  1. ACID CAP BASE理论
  2. 事务四大特性,以及事务的二段提交机制?
  3. 微服务架构是什么,它的优缺点?
  4. JVM什么对象会从新生代晋升到老年代
  5. 类加载过程,双亲委派机制及使用原因
  6. 一个任务分成十个任务,最后汇总计算,不能用fork/join
  7. 一个表一千个列值为true和false,写sql 查询 有300个列值为true的行。

三面

  1. 简单自我介绍下
  2. 监控系统怎么做的,分为哪些模块,模块之间怎么交互的?用的什么数据库?
  3. (MySQL)使用什么存储引擎,为什么使用InnnoDB? (支持事务、聚簇索引、MVCC)
  4. 订单表有做拆分么,怎么拆的? (垂直拆分和水平拆分)
  5. 水平拆分后查询过程描述下
  6. 如果落到某个分片的数据很大怎么办? (按照某种规则,比如哈希取模、range, 将单张表拆分为多张表)
  7. 哈希取模会有什么问题么? (有的,数据分布不均,扩容缩容相对复杂)
  8. 分库分表后怎么解决读写压力? (一主多从、多主多从)
  9. 拆分后主键怎么保证惟- -? (UUID、 Snowflake算法)
  10. Snowflake生成的ID是全局递增唯一么? (不是,只是全局唯一,单机递增)
  11. 怎么实现全局递增的唯一ID? (讲了TDDL的一-次取- -批ID, 然后再本地慢慢分配的做法)
  12. Mysql的索引结构说下(说了B+树,B+树可以对叶子结点顺序查找,因为叶子结点存放了数据结点且有序)
  13. 主键索引和普通索引的区别(主键索引的叶子节点存放了整行记录,普通索引的叶子节点存放了主键ID,查询的时候需要做- -次回表查询)一定要回表查询么? (不一定,当查询的字段刚好是索引的字段或者索引的一部分,就可以不用回表,这也是索引覆盖的原理)
  14. 你们系统目前的瓶颈在哪里?
  15. 你打算怎么优化?简要说下你的优化思路
  16. 有什么想问我么?

四面

  1. 自我介绍
  2. 参与的项目最有收获的一个,谈谈你负责的核心编码以及架构设计?
  3. 项目中遇到的最大问题和解决思路?
  4. 谈谈消息中间件 rocketmq,kafka,activemq,rabbitmq从架构设计,再到实现,以及应用场景区别?
  5. 谈一个生活中遇到的最大的令你最有成就感的事情?

五面

  1. 兴趣爱好
  2. 你的缺点和优点
  3. 三年到五年的职业规划
  4. 你觉得你比其他人优秀的地方在哪里?请说重点的3个
  5. 为什么想来我们部门

总结

  • 记得一定要提前准备,还要深入准备,不要回答的太皮毛。很多时候一个问题可能会牵扯出很多问题,遇到不会的问题不要慌,冷静分析,如果你真的回答不上来,也不要担心自己是不是就要挂了,很可能这个问题本身就比较难。
  • 表达能力和沟通能力很重要,一定要提前练习,确保面试的时候能够很清晰和简洁的说出来。

最后把我认为比价有价值的学习导图、文档以及视频分享给大家,一起进步,也祝大家都能获得心仪的offer。

资料全部真实有效,不会缺页,不会只是大纲!!!由于文章篇幅有限,为了不耽误大家宝贵的时间,完整学习路线图、文档、视频已经为大家整理好了,需要免费领取的朋友麻烦帮忙转发、转发、转发这篇文章(一定要转发哦),然后私信小编【666】。

学习导图,文档,视频如下

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第2张图片

 

Spring

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第3张图片

 

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第4张图片

 

Redis

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第5张图片

 

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第6张图片

 

Jvm

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第7张图片

 

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第8张图片

 

分布式

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第9张图片

 

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第10张图片

 

高并发

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第11张图片

 

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第12张图片

 

面试文档

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第13张图片

 

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7

 

阿里巴巴内部PPT全集及电子文档分享

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7

 

学习视频全集

工作三年,裸辞三个月,疯狂刷题,最终五面蚂蚁定级P7_第14张图片

 

资料全部真实有效,不会缺页,不会只是大纲!!!由于文章篇幅有限,为了不耽误大家宝贵的时间,完整学习路线图、文档、视频已经为大家整理好了,需要免费领取的朋友麻烦帮忙转发、转发、转发这篇文章(一定要转发哦),然后私信小编【666】。

你可能感兴趣的:(面试,Java,架构)