前言
面试大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识)分为MySQL+Java+Redis+算法+网络+Linux等六类,接下来分享一下我的这次阿里一面面经+一些我的学习笔记。
一面
-
自我介绍
-
项目难度介绍
-
如何实现延时任务
-
如何实现限流
-
线程池的参数
-
能不能自己实现一个java.lang.String并加载
-
Redis为什么这么快
-
epoll和poll的区别
- 进程同步的方式
二面
-
MySQL的索引机制
-
如何自己实现内存分配和管理?不太懂,然后说了jvm的垃圾回收机制
-
你们公司内部的RPC框架,介绍一下
-
Redis的key过期策略
-
缓存穿透和缓存雪崩
-
分布式锁
-
如何实现全局的id生成策略
-
悲观锁和乐观锁
- 红黑树了解么
三面
-
如何实现群消息已读
-
消息推送如何保证不重复
-
Kafka如何保证消息的可靠性
-
RPC是什么,和http调用有什么区别
-
说一说你项目的架构
-
GC
-
MySQL的索引原理,给了一个场景,如何优化
- 。。。。。。
面完3面后居然又来了一个笔试题(内心无比崩溃~~)
附加笔试
-
producer-consumer
-
两线程交替打印
- 多线程模拟100分钱随机分给20个人,每个人最少分配到2分钱
四面
-
写个producer-consumer吧,我说上次写过了。。傻了。。不该说的,然后面试官换了一道题,还好比较简单,写个二分查找,2分钟写完完事。
-
项目难点
-
MVCC
-
HTTPS
-
ElasticSearch的查询过程
-
Kafka如何保证高可用
-
Reids的集群和选主
-
知道什么分布式一致性算法
-
如何实现定时关单
- 。。。。。。
HR面(唉,阿里的hr面真是让我难忘。。。)
-
说说看,假如你是部门技术经理,线上商户数据丢失怎么办
-
怎么将一个产品推荐给其他的团队,怎么界定边界
-
怎么样协调关系(到这里我已经快冒汗了,生怕最后一关毙掉了)
-
你和同事相处的情况怎么样,说说你帮助同事的一次经历
- 薪资
说真的,阿里面试流程很长,而且一个部门挂了以后,会被另一个部门捞起来,不停的面。总之来说,阿里的面试体验也还不错,这次虽然面的忐忑,最终三天内还是收到了offer,真的很庆幸。
《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java开发优秀开源项目:
-
ali1024.coding.net/public/P7/Java/git
- github.com/spring-projects
最后
按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。
“道路是曲折的,前途是光明的!”