阿里六面面经
一面:
1. 你简历上有后台也有前端, 你想申请哪个岗位?
java后台
2. 说说项目吧
...
3. 说说react吧
噼里啪啦react, redux, flux, axios, fetch
4. 项目什么语言写的
python
5. 那你会java吗?
会
6. ArrayList, LinkedList
...
7. HashMap, TreeMap
...
8. 详细的说下JMM你所知道的全部
...
9. 你所知道的gc
...
10. IO, NIO
...
OK一面结束
二面:
1. 项目
...
2. 你部署在什么上面的?
...
3. 对Linux了解多少?
了解不多
4. top干什么的
差点没答上来
5. 怎么实现多线程有顺序的执行一段代码?
(1) notify/wait (2)SingleThreadExecutor (3) 自己写框架, 实现add()和register(), 好扩展
6. 什么时候毕业?
...
OK二面结束
三面:
1. 详细的说一下项目
...
2. Netty源码看过吗?
...
3. IO和NIO
...
4. Netty的整体架构
...
5. Netty用在什么地方?
...
6. 说到了MQ, 说说MQ吧
rabbit, kafka, active zero, rocket的比较
7.你都动手写过吗?
大部分
8. 说说rabbit消息分发模式
...
9. 那为什么用Netty?
好扩展, 写起来方便
10. Netty高效的什么地方?
开发高效, 在java体系里面的确速度算快, 但是放到erlang和go里面比可能没什么优势.
11.为什么?
高并发
12. 那Netty在java体系里为什么高效?
我知道可能你要的答案是NIO, 零拷贝, 内存池, 责任链等等, 但是NIO(算java或者底下epoll的, 不能算netty的), 零拷贝(引用, 大家都可以做到), 责任链(肯定一个类更快, 这应该属于扩展高效), 内存池(这个是真正Netty自己的优点).
13. 强一致性, 弱一致性, 最终一致性
...
14. 分布式幂等性实现
...
15. 你项目中用到了哪些中间件?
...
16. zk的一致性
...
17etcd呢?
...
18. 你这些东西都是怎么学的? 就看书吗?
...
19. 哪里人?
...
OK三面结束
四面:
1. IO, NIO
...
2. Netty零拷贝, 怎么实现?
(没答好, 完全讲错了)
3. Netty源码看了多少?
...
4. 那好, 接下来是一个场景题, 前端发送请求过来, 你怎么异步处理, 详细到每一步. (我题目没理解)
(没理解, 题目不是这样的, 我只能理解到这里)
5. 我给你拆开来吧, 首先假设是个秒杀(其实这个是我说的, 能不能理解成秒杀, 面试官说也可以), reuest放哪里?
blockingQueue
6. 那你这个是一个异步处理, 你怎么把正确的数据返回给正确的用户?
(不是很理解)
7. 我提醒你一下吧, 用什么数据结构?
HashMap, 准确点的讲是ConcurrentHashMap(这下对了)
8. 那好, 第三步, 线程间的挂起怎么实现?
wait/notify?
9. 这个可以是可以的, 但合适吗?
这么说应该是不合适的
10. Phaser知道吗? 为什么不用Phaser?
(没答好, 应该说完全没想到)
11. 好了, 我上面说的所有东西Netty里面都有的, 你说一下吧
ChannelGroup我知道是对应的ConcurrentHashMap
12. 好吧, 说说CountdownLatch吧
(这个时候脑子混混的, 说成了Barrier, 真要命了)
13. 你说的不对, 应该是这样的: ...
...
14. 你还会什么?
...
15. 说说zk一般用在什么地方吧
...
16. 说一下zk实现分布式锁的方式吧
...
17. 你好好理一理, 你还是有一点乱的
(对的, 我也是这么觉得的, 回去马上又好好看了看)
OK四面结束
五面:
这轮线下面
1. 简单介绍下自己吧
...
2. 简单说下项目吧
...
3.什么语言写的?
python
4. 用了什么库?
...
5. 对机器学习了解多少?
不多
6. 你为什么不用python里面的库解决你的问题?
我要拆了重写, 那些解决不了
7. 说说机器学习还有用在什么地方?
...
8. 你为什么用python?
...
9. 你自己写的算法自己做过测试吗?
简单测试
10. 会安卓吗?
不会
11. 会Swing吗?
不会
12. 会web吗?
会
13. 简单说下Spring的IOC和AOP吧
...
14. 好了, 现在没有Spring了, 你来实现IOC, 详细一点, 每一步用什么数据结构, 存什么
...
15. map的key存name有问题吗?
(好像不能用类来找)
16. value存什么?
class
17. 那我要实例怎么办?
forName
18. 单例多例分别怎么解决?
...
19. 内存泄露要考虑吗, 或者说怎么考虑生命周期和引用
...
20. 好了, AOP怎么实现?
接口jdk, 没接口cglib
21.没cglib, 只有jdk
那还是继承
22. jvm了解吗
恩
23. JMM
...
24. gc, 说说有什么算法
...
25. CMS用在哪里, 为什么叫CMS
(一开始答错了, 后来才说出来C代表concurrent)
26. G1听过吗?
恩
27. G1怎么个情况, 解决什么问题?
...
28. cpp的对标解决方案是什么?
说了个delete/free, smart point忘了, 这里没答好
29. 说说Netty的结构吧
...
30. 多线程前面好像都问过了, 我就不问了
谢谢大佬
31. 说下四种引用
...
32. final, finalize, finally
...
33. 重点说下幽灵引用和finalize, 什么时候用? 为什么用?
(基本没答上来, 我的理解是少用, 或者自己不要用)
34. 为什么要学Netty?
...
35. 你说你撇过mina, 为什么想到去瞥一眼?
...
36. 哪里人?
...
OK五面结束
六面:
hr大佬+总监大佬
1. 要喝水吗?
...
2. 简单介绍一下自己吧
...
3. ioc aop
...
(基本就随意问问, 好把我简历调出来)
4. 写算法把, 一个ip怎么转成一个int
这个不难
5. 去国外这么三年值吗?
...
6. 压力大吗?
我不大, 我看别人大
7. 我看看压力也不大啊
我也觉得还好
8. 好吧, 给你一到场景题, 现在的外卖这么流行, 你来设计吧, 从物流的角度映射到具体用什么算法(这道题奖励将近快半小时)
...
9. 未来什么打算, 职业规划
...
----------------------------分割线--------------------------------
目前就想到这些, 具体感受什么的换一篇写好了~