哔哩哔哩 java岗社招面经
一面
1.项目为什么要用消息队列?改成异步接口不行吗?
2.消息可靠性,消息重复消费。如果消息丢失,你应该怎么尽量地让用户觉得此次下单的
公平性?
3. Redis 性能为什么高?Redis的lua脚本,为什么能保证原子性?如果lua脚本在库存扣减
完以后执行出错怎么办?
4.项目如果要跟小公司进行对接,你会怎么做?
5. JVM 内存布局?GC算法?
6.请从操作系统以及CPU指令(怎么操作内存的)的角度去解释为什么会出现线程不安全?
(答不出来,cpu 指令不会..,扯开话题扯去JMM了)
7. http里面包含什么?
8. 两堆乱序扑克牌,要求合并成一堆有序的牌堆,怎么做?(归并+随便一个排序)时间复
杂度?
9.如果两堆1TB 的数据,要求合并成一堆有序的牌堆,怎么做?(归并+内部排序,分而治
之)
10.回到扑克牌的这个主题,要求把一堆乱序的扑克牌进行排序,如果要极致地压榨性能,
应该怎么做?时间复杂度能达到多少?
最后就是反问。
二面
1. UDP跟TCP的区别及场景?
2. Mysql三范式?为什么会有这三范式?
3. 缓存中间件了解吗?Redis,Memcache?(缓存中间件广度)Redis有多少种数据结构?
应用场景?为什么高性能?
4. zk了解吗?(注册中心广度)
5. kafka 了解吗?(mq广度)(介绍了卡夫卡在他们业务上的使用)
6.微服务设计思想?为什么需要这样设计?好处?
7.了解过Golang 吗?说说你的使用感受以及理解?
#面经##社招##哔哩哔哩##Java工程师#