三面蚂蚁金服,分享面试经历总结(已拿offer)

本文记录了一位Java程序员在蚂蚁金服的面试经历,涵盖一面的HashMap与ConcurrentHashMap、TCP三次握手、volatile与lock机制、InnoDB隔离级别等;二面的Spring AOP、MyBatis与Hibernate对比、Redis数据类型及单例模式实现;三面涉及内存泄漏、一致性模型、分布式锁策略和Redis缓存问题。面试官注重基础知识和实际问题解决能力,建议面试前充分准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一面

  1. HashMap链表长度大于8后一定会转化为红黑树吗
  2. 如场景是,HashMap初始数组长度为8,只有第一个元素中有值,且有八个都在一条链表上,其他数组其他七个位置都是空的,这时候为什么要转化为红黑树而不是存放到数组中呢?
  3. ConcurrentMashMap分段锁之间加了什么锁,读写之间是互斥的吗?
  4. 三次握手后如果一直不连接会怎样
  5. volatile的实现原理是怎么样的,它是怎么实现从内存中读取的?
  6. lock锁的使用,它如果是一个接口,它的实现类有哪些,区别是什么?
  7. InnoDB的隔离级别是什么,它能避免幻读吗?怎么避免的?
  8. 索引的底层实现是什么,简单介绍下。

二面

  1. 介绍一下spring中的AOP
  2. mybatis和hibernate的区别与优劣
  3. redis有哪些数据类型
  4. 手写一个单例模式
  5. 用到的技术栈

三面

  1. 如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决?
  2. 怎么理解强一致性、单调一致性和最终一致性?
  3. 分布式锁有哪些解决方案?
  4. 如何解决Redi缓存穿透的问题?
  5. Redis hash算法用的是什么?
  6. Redis集群方案应该怎么做?都有哪些方案?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值