作业帮一面 面试官:看的东西挺多的
时间:9.27
地点:线上
面试官非常友好,不压力、不瞌睡、不吃东西、不转椅子、还会引导你回答问题。这次面试体验满昏
1、开局面试官介绍部门,听成了让我先做自我介绍,场面一度尴尬
2、拷打实习经历,聊了一会儿发现是前端说这块也不了解就不问了
3、项目经历,在扣减库存的时候整个流程是怎样的,如何保证缓存一致性
4、为什么后续不使用分布式锁改用lua脚本,性能提升了多少,lua脚本为什么会比分布式锁性能要好
5、扣减库存的时候如何保证数据库与缓存的一致性(提到了binlog、消息队列)
6、TCC 分布式事务介绍一下
基础问题:
7、非递归方式遍历一个平衡二叉树所需的时间复杂度和空间复杂度
8、如果把引用作为函数的入参有没有什么特点
9、什么是热key,怎么处理热key(拆分热key、缓存预热、单线程重建热key、不设置过期时间)
10、Redis 内存淘汰机制 LRU 与 LFU 的区别(LFU是在对象头中记录了对象的访问次数,要淘汰的时候随机抽取一些淘汰访问次数最少的)
11、InnoDB 支持行锁还是表锁
12、行锁具体讲讲(记录锁、间隙锁、临键锁)
13、行锁有什么前提提交(面试官其实是想问 MySQL 锁是建立在索引之上的,理解意思理解错了)
14、redolog执行流程是怎样的,redolog的刷盘策略
15、sql题
16、消息队列怎么保证消息不丢且只被消费一次(RocketMQ举例)
17、编程题
反问:
面试流程
面试结果大概什么时候通知
改进(细节性的问题稍微再去了解一下)