【蚂蚁】-Java岗-一二三面面经

言归正传,准备过程其实很早开始了(当然这不是说我工作时老想着跳槽,因为我明白现在的老东家并不是终点,我还需要不断提升),在这段时间也面了很多公司,不过没啥大公司,面了大概5家公司,都拿到offer了。

工作之余常常会去额外研究自己感兴趣的技术以及工作用到的技术,力求把原理搞明白,并且会自己实践一把。此外,买了很多书,基本有时间就会去看,什么操作系统、数据结构与算法、MySQL、JDK之类的源码,spring框架基本都好好温习了,因为我深知底子就像“木桶效应”的短板,决定了能装多少水。

蚂蚁金服一面

map怎么实现hashcode和equals,为什么重写equals必须重写hashcode

使用过concurrent包下的哪些类,使用场景等等。

concurrentHashMap怎么实现?concurrenthashmap在1.8和1.7里面有什么区别

CountDownLatch、LinkedHashMap、AQS实现原理

线程池有哪些RejectedExecutionHandler,分别对应的使用场景

多线程的锁?怎么优化的?偏向锁、轻量级锁、重量级锁?

组合索引?B+树如何存储的?

为什么缓存更新策略是先更新数据库后删除缓存

OOM说一下?怎么排查?哪些会导致OOM?

OSI七层结构,每层结构都是干什么的?

java的线程安全queue需要注意的点

死锁的原因,如何避免

蚂蚁金服二面

jvm虚拟机老年代什么情况下会发生gc,给你一个场景,一台4核8G的服务器,每隔两个小时就要出现一次老年代gc,现在有日志,怎么分析是哪里出了问题

数据库索引有哪些?底层怎么实现的?数据库怎么优化?

数据库的事务,四个性质说一下,分别有什么用,怎么实现的?

服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器

volatile讲讲

哪些设计模式?装饰器、代理讲讲?

redis集群会吗?

mysql存储引擎

事务隔离级别

不可重复度和幻读,怎么避免,底层怎么实现(行锁表锁)

蚂蚁金服三面

分布式锁是怎么实现的

MySQL有哪几种join方式,底层原理是什么

Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?

Redis扩容,失效key清理策略

Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点。

MySQL数据库怎么实现分库分表,以及数据同步?

单点登录如何是实现?

谈谈SpringBoot和SpringCloud的理解

未来的技术职业怎么规划?

为什么选择阿里?

小结

蚂蚁金服-小结蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。

发表评论

后才能评论