一面
1、先是自我介绍,介绍自己的项目经验和个人的擅长点,面试官主要考察你的表达能力和语言精简能力。
2、项目中做了什么,难点在哪里?主要是想了解参与过技术难度最大的项目难点,技术难点在哪里,你是怎么来解决的,考察项目经验(技术难度)。
3、Java的线程池说一下,各个参数的作用,如何进行的?
4、同步与异步区别?
5、HashMap的实现原理,HashMap是如何解决hash冲突的问题?
6、Redis讲一下,项目使用场景,以及对应的算法?
7、分布式系统的全局id如何实现?用zookeeper如何实现的呢,机器号+时间戳即可?
8、分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好?
9、kafka了解么,了解哪些消息队列?
10、乐观锁,悲观锁;
11、IO和NIO的区别,以及NIO的原理,有了解过mina?
12、JVM内存模型,JVM加载原理,回收算法了解?
13、你是想做业务还是研究?
二面
1、介绍一下你做的项目和其中的难点;
2、反射的作用是什么?
3、数据仓库,多线程和并发工具等?
4、私有云,docker和k8s等?
5、了解哪些中间件,dubbo,rocketmq,mycat等?
6、dubbo中的rpc如何实现?
7、自己实现rpc应该怎么做?
8、dubbo的服务注册与发现?
9、最后问了些排序算法;
三面
三面不是面试,而是笔试,耗时三个小时,考的是Java核心的基础。
1、Java并发的知识点
2、集合类、线程池
3、多线程之间的通信
HR面
1、聊人生谈理想,主要还是考察你对工作是否持积极的态度,以及你是否稳定。
2、询问一下从上家公司离职,选择阿里的原因是?
3、对于未来自己有着怎样的规划?
4、对薪资的期望是什么?
总结
阿里的面试特别喜欢面试技术原理,特别是:
1、多线程、NIO、异步消息框架分布式相关的缓存算法等;
2、JVM的加载过程和原理、回收算法、以及具体使用过的框架,会问部分参数检验你是否熟用;
全部评论
(1) 回帖