关于疫情:
进入主题之前,开篇先闲谈几句,这次的面试来得意外,主要也是因为疫情的缘故,所以心里上是没有准备的,这次肺炎对我们的学习、工作和生活都造成了非常大的影响,很多学校延期开学,企业也延期返工,实际上在闭关的这段时间里,我们正好可以好好利用这段时间,为自己之后想要做得事情充分做好准备,也希望肺炎赶快过去,我们的生活恢复正常。
以下主要分享面经和个人学习方法,会包括很多PDF文档,如面试题库(含答案+解析)、学习笔记、实战文档和脑图等等,均可以免费分享,私信我【成长】即可领取~
由于疫情缘故,与阿里的HR沟通过后,采取的是视频面的方式,总共4轮均是通过视频的方式。视频面相比于现场面给人的感觉还是要稍微轻松一些的,过程没有那么紧张,交流方式也比较自然,没有太大的压迫感,只要技术ok,基本上是没什么问题,以致于这次面试顺利通过。
余额宝一面
- 自我介绍
- 项目介绍(项目中最大的技术挑战和技术难点)
- JVM 内存分哪几个区,每个区的作用是什么?JVM有哪些回收算法,对应的收集器有哪些?
- GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点。
- Java容器有哪些?哪些是同步容器,哪些是并发容器?
- ArrayList和LinkedList的插入和访问的时间复杂度?
- HashMap检测到hash冲突后,将元素插入在链表的末尾还是开头?
- 新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?
- 1.8还采用了红黑树,讲讲红黑树的特性,为什么大家一定要用红黑树而不是AVL、B树之类的?
- 新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?
- 线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?
- https和http区别,有没有用过其他安全传输手段?
- 项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理
- 代码编写:两个线程,一个线程打印奇数,一个打印偶数,控制交替打印奇偶数。(有多种方法实现,最好能比较优劣)
余额宝二面
- 查询中哪些情况不会使用索引?
- 数据库索引,底层是怎样实现的,为什么要用B树索引?
- Mysql主从同步的实现原理?
- MySQL是怎么用B+树?
- 谈谈数据库乐观锁与悲观锁?
- 有使用过哪些NoSQL数据库?MongoDB和Redis适用哪些场景?
- 描述分布式事务之TCC服务设计?
- Redis和memcache有什么区别?Redis为什么比memcache有优势?
- Redis 的数据结构
- 海量数据过滤,黑名单过滤一个 url。
- 讲一讲AtomicInteger,为什么要用CAS而不是synchronized?
余额宝三面
- 考虑redis的时候,有没有考虑容量?大概数据量会有多少?
- Redis 的 list zset 的底层实现
- solr和mongodb的区别,存数据为什么不用solr?
- 分布式 session 的共享方案有哪些,有什么优劣势
- 谈谈分布式锁、以及分布式全局唯一ID的实现比较?
- 集群监控的时候,重点需要关注哪些技术指标?这些指标如何优化?
- 从千万的数据到亿级的数据,会面临哪些技术挑战?你的技术解决思路?
- 数据库分库分表需要怎样来实现?
- 排序算法的复杂度,快速排序非递归实现。
- 消息中间件有哪些?他们之间的优劣势?
余额宝四面
- 分布式架构设计哪方面比较熟悉
- 介绍你实践的性能优化案例,以及你的优化思路
- 介绍项目
- 谈一个你觉得你学到最多的项目,使用了什么技术,挑战在哪里
- 各种聊项目,从项目的架构设计到部署流程。
- 最近有没有学习过新技术?
- 有什么想问我的?
- 最近两年遇到的最大的挫折,从挫折中学到了什么?
- 三年到五年的职业规划?
HR面
- 自我介绍
- 项目介绍
- 如何学习新技术?
- 遇到的最大挑战以及如何解决?
- 大学最大的收获?
- 如何团队合作的?
- 职业规划
由于文章的篇幅有限,所以这次的阿里面试题答案整理在了PDF文档里
如何准备,才能拿到阿里Offer?
Step1:准备一份优秀的简历
想要拿到阿里Offer,那么首先得要有面试阿里的机会,想要得到大厂面试机会并不是一件容易的事情,而简历,是撬开面试大门的钥匙,钥匙是否匹配,就要看简历是否优秀了。很多应届生不知道怎么制作自己的简历,随便在网上下载一份,改改个人信息。实际上,大厂面试的简历,看重的不是你的个人爱好,也不是在校参加过什么社团学生会,更注重的还是你的个人实际能力。所以,一份优秀的简历,应该包括你个人掌握的技术点,是否有实习经历,参加过什么项目,解决过什么项目难题等等。
Step2:提示自身的软实力(知识和技术)
第二个关键就要自己的自身实力过硬了,无论是你应届生,还是工作好几年,无论是校招还是社招,企业招聘的永远是自身实力过硬的,也就是你的知识储备,你的技术水平要达到要求,而提升自身软实力的唯一办法就是:不断学习。
以下我会分享一些我个人的学习文档,有需要的朋友自行选择获取:
- Java核心知识整理
Java核心知识
- Spring全家桶(实战系列)
- 其他电子书资料
Step3:刷题
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
写在最后
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
以上学习资料均免费放送,最后祝愿各位身体健康,顺利拿到心仪的offer!