进入主题之前,开篇先闲谈几句,这次的面试来得意外,主要也是因为疫情的缘故,所以心里上是没有准备的,这次肺炎对我们的学习、工作和生活都造成了非常大的影响,很多学校延期开学,企业也延期返工,实际上在闭关的这段时间里,我们正好可以好好利用这段时间,为自己之后想要做得事情充分做好准备,也希望肺炎赶快过去,我们的生活恢复正常。
以下主要分享面经和个人学习方法,会包括很多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面
-
自我介绍
-
项目介绍
-
如何学习新技术?
-
遇到的最大挑战以及如何解决?
最后的话
无论是哪家公司,都很重视Spring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!
部分截图:
pring框架技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。
同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,好了希望这篇文章对大家有帮助!**
部分截图:
[外链图片转存中…(img-i9T5c8bz-1714762638322)]