拼多多凉经
2021-08-17 拼多多提前批 后端
一面
项目
-
秒杀系统的架构
-
如何防止用户多次秒杀
-
消息队列的作用
-
如何实现分布式事务,具体代码怎么写(try/catch)
-
整个系统的性能瓶颈在哪(redis)
-
对于秒杀系统,未来考虑怎么进一步优化
-
RPC底层用的netty,介绍一下netty的性能优势
-
为什么说go更快
-
介绍一下心跳机制
-
为什么要用心跳机制
-
长连接和短连接
java
- 说说hashmap,结构与扩容
- 如何设计能够保证hashmap的线程安全(concurrentHashMap)
- 说说AQS,等待队列如何保证线程安全
mysql
- 执行事务会涉及到哪些过程、组件(锁、MVCC)
Redis
- redis为什么快
- 线程切换损耗的是什么资源
算法
- 机器人避障,从(0,0)走到(m-1,n-1),路上有石头
- 求最短路径坐标
二面
项目
-
手写RPC是简单的实现还是模仿dubbo
-
说一下服务暴露的实现
-
为什么要用zk作为注册中心,有什么缺点(慢?)
-
CAP了解吗?zk满足哪个
-
秒杀系统解决了什么问题
Redis
- redis集群了解吗?key是如何分发到不同redis中的?
- 哨兵机制了解吗
- 持久化机制了解吗
jvm
- 说说cms垃圾回收器
- cms的三色标记法了解吗?
- 如果是你怎么完成cms的重标记,解决漏标错标问题
spring
- spring源码看过吗
- 说说refresh的整个过程
实习
- 大三的实习还记得吗?解决了什么问题
- 实习有什么收获?
竞赛
- 说说数学建模解决了什么问题
- 自己贡献了百分之几?
算法
- 非严格递增数组,如【1,2,2,3,4,5】,求所有和为p的连续子数组
小结
- 本次二面主要试探深度,如zk问到了cap,redis问到了key分配,jvm问到三色标记
- 知识面够广了,但还不够深
- 再深究一下redis和jvm
三面
算法
- 链表去重
- 自己写输入输出
- 自己设计测试用例
- 报错了面试官只告诉行号
- 尽可能地进行优化,提升算法鲁棒性