当前环境,很多公司都采取了远程办公,远程面试。有一说一,第一次远程面试,还是比较紧张的。

远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取_第1张图片


蚂蚁金服面试(视频一面)

  1. Java容器有哪些?哪些是同步容器,哪些是并发容器?

  2. 为什么 Java 要采用垃圾回收机制,而不采用 C/C++的显式内存管理?

  3. 一个线程的生命周期有哪几种状态?它们之间如何流转的?

  4. 什么是活锁、饥饿、无锁、死锁?怎么检测一个线程是否拥有锁?

  5. 如何解决同时存在的对象创建和对象回收问题

  6. 说说一致性 Hash 原理

  7. 新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?

  8. HashMap在什么情况下会扩容,或者有哪些操作会导致扩容?

  9. HashMap检测到hash冲突后,将元素插入在链表的末尾还是开头?

  10. 1.8还采用了红黑树,讲讲红黑树的特性,为什么大家一定要用红黑树而不是AVL、B树之类的?

  11. https和http区别,有没有用过其他安全传输手段?

  12. 线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?

  13. RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?

  14. RabbitMQ 允许发送的 message 最大可达多大?

  15. 有使用过哪些NoSQL数据库?MongoDB和Redis适用哪些场景?

  16. 项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理

蚂蚁蚂蚁金服面试(视频二面)

  1. 查询中哪些情况不会使用索引?

  2. 描述分布式事务之TCC服务设计?

  3. 数据库索引,底层是怎样实现的,为什么要用B树索引?

  4. Mysql主从同步的实现原理?

  5. MySQL是怎么用B+树?

  6. 谈谈数据库乐观锁与悲观锁?

  7. Redis和memcache有什么区别?Redis为什么比memcache有优势?

  8. Redis 的数据结构

  9. 海量数据过滤,黑名单过滤一个 url。

  10. 讲一讲AtomicInteger,为什么要用CAS而不是synchronized?

蚂蚁金服三面(视频三面)

  1. 考虑redis的时候,有没有考虑容量?大概数据量会有多少?

  2. Redis 的 list zset 的底层实现

  3. 分布式架构设计哪方面比较熟悉

  4. 分布式 session 的共享方案有哪些,有什么优劣势

  5. 谈谈分布式锁、以及分布式全局唯一ID的实现比较?

  6. 集群监控的时候,重点需要关注哪些技术指标?这些指标如何优化?

  7. 从千万的数据到亿级的数据,会面临哪些技术挑战?你的技术解决思路?

  8. 排序算法的复杂度,快速排序非递归实现。

  9. 消息中间件有哪些?他们之间的优劣势?

  10. 介绍项目

  11. 介绍你实践的性能优化案例,以及你的优化思路

视频面试之后,我总结了下,问的都不算难,虽然不是很顺畅,但问题也都回答上了,就是通过视频的形式来面试,总感觉怪怪的。本以为已经没戏了,谁知道2天后收到通知,竟然过了!现在正在考虑要不要辞职过去...

当然,大厂的面试,是一个系统规范化的流程,除了Redis、MQ这些必备品外,每一个简历都会有一句Java基础扎实(有没有被说中),那么,到底怎么样算Java基础扎实?

1、集合,例如 List、Map的原理,HashMap基本必问这个不用我多说

2、并发,例如线程、线程池,锁相关,这些也基本必问

3、JVM,例如垃圾回收器,垃圾回收算法,OOM处理,jvm参数及调优

上面说的这些,是最最最基本的面试标配了。

首先来说下对于简历的准备。MQ、Redis这两个是标配没跑的了。为啥?你要突出你的核心竞争力,无非围绕高并发、高可用、海量数据这几个点出发。

其次,核心竞争力也体现在分布式解决方案的真实落地实践,但是这些分布式解决方案,也很大程度上依赖 Redis和 MQ。

比如分布式session需要依赖 Redis,分布式事务最终一致性需要依赖 MQ。也就是说,一份优秀的简历,深入 Redis和 MQ这两个,都是避无可避

以下主要分享面经和个人学习方法,会包括很多PDF文档,如面试题库(含答案+解析)、学习笔记、实战文档和脑图等等,如果您需要获取到文档,请转发一下本文,关注楼主,加我VX【tkzl6666】即可获得免费领取方式。

由于文章的篇幅有限,所以这次的阿里面试题答案整理在了PDF文档

远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取_第2张图片


远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取_第3张图片


如果简历上只是做的项目不同,但是实质都是简单的CRUD,那么没面试之前,已经给淘汰得差不多了

通过数十家面试的观察,对于Redis和MQ,考察的方向,其实也是有迹可循的。首先他们的高可用是怎么保证的,原理是怎么样的,几乎必问(不信你可以自己观察)。当然还会根据你的回答往下继续拓展问题,每个人回答得不一样,自然拓展的问题也不一样。

以下我会分享一些我个人的学习文档,有需要的朋友自行选择获取:

“金三银四”Java社招开发必备-面试文档+简历修改+面试重点PDF免费获取方式

转发一下本文,关注楼主,加我VX【tkzl6666】即可获得免费领取方式。

远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取_第4张图片


Java核心知识整理

远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取_第5张图片


Spring全家桶系列

远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取_第6张图片


性能优化(JVM+Tomcat+MySQL)答案解析整理

远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取_第7张图片


分布式(限流+缓存+通讯)答案解析整理:

远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取_第8张图片


刷题:

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。