3/3 晚上一面
3/4 早上二面
一面流程35min。
无自我介绍。
竞赛相关
1. 你用的最多的语言是?
实习项目相关(15min可能)
2. 你负责的用户权限认证模块,如果这个系统上线销售,很多公司都购买了,你怎么解决不同公司的权限隔离问题?
开始没听懂什么意思,面试官又解释了一遍。
3. 比如钉钉里有很多企业、集团,每个都是独立的,你肯定要每个企业的权限等级要独立噻,所以你的数据库里缺少什么信息?
没有相关经验都不知道往哪方面思考😣,面试官说是公司ID,每条信息都要有。
分布式相关
4. 你这个实习项目是分布式的吗?
单体的,分布式相关正在学习,不熟练。(然后就问了😶)
5. 分布式项目你觉得重要的组件有哪些?
6. 因为服务有挂掉的可能性,如何处理?
7. 你什么时候会用到消息队列,常用的是哪一个?
8. 你的实习项目啊消息队列这些是在哪里怎么部署的?有用到企业的消息队列一些实现吗?
9. 阿里云产品你了解过吗?
多线程
10. 有接触过并发编程吗?如果让你实现一个生产者消费者的模型,如何实现?
阻塞队列可以吗?
11. 可以的,如果不用阻塞队列呢?
(没手写过,光凭感觉回答了)锁保证offer和take的并发安全,模仿阻塞队列用notEmpty、notFull两个条件变量处理空队和满队。
12. 如果空队了,一个消费者获取到了锁,没取到,怎么解除这个锁,什么方法?
脑子抽了,一直想着解锁不就是unlock?绕了半天也没绕出来。最后面试官说是"wait",我寻思之前不是说的都是显式锁吗,现在反应过来应该说的是await吧。
13. (a)wait之后怎么唤醒?
signal
操作系统
14. 进程线程区别
15. 进程通信方式
七种
16. 死锁什么时候出现?
四个必要条件。
17. 死锁怎么解除?
四种处理策略。
其他
18. 了解过设计模式吗,说一些呢?
19. 平时遇到问题怎么解决的?
20. 你有解决这种问题的实际经历吗?
回答的有关前几天调试偏向锁与markword过程中,发现的JVM复用线程ID的问题。
21. 对于一门技术,平时怎么学习的
22. 我看你的成绩足够保研,怎么考虑的?
反问
23. 第一次面试,有什么需要改进的地方?
24. 什么时候有结果?
25. 我目前应该学些什么?
二面 30min
1. 自我介绍
2. 实习项目相关
你开始用了本地map做缓存,你能计算一下大概占用多少内存吗?
你的String用的是什么编码?一个字符占多少字节?
说说内存做缓存有什么缺点?
--- 回答的是宕机后缓存丢失。面试官说从分布式一致性的角度考虑。
你之后用的redis缓存,你的缓存的刷新策略是什么?
你用的SpringSecurity,看过源码吗?
说说SpringSecurity的原理呢?
SpringSecurity源码中你印象最深的设计模式是什么呢?
--- 回答的建造者模式。
讲一讲你使用的RBAC权限模型呢?
3. redis
redis为什么快?
4. 竞赛相关
5. 反问
总结:两次面试面试官的态度都非常好,完全不紧张,不懂的地方面试官还会换一个方式表述。疑惑的是常问的计网、操作系统和数据结构等都还没有涉及。
希望能过,多一些实习经验。
全部评论
(4) 回帖