BG:双9,一段携程后端实习
【流程】
10.19一面 10.22二面
【一面】
假设给一个数组(比如说姓名的列表),如何在内存里实现一个简单检索功能,如何查询名字,没有则没有,怎么实现效率好 HashSet 的查找操作在平均情况下的时间复杂度是 O(1)原因 怎么防止哈希碰撞 如果检索名字是一个范围检索如何处理 treemap底层数据结构 可以用数组存名字检索吗 排序数组和treeset哪个性能高 链表插入如何操作 内存中二叉树效率会好一点吗 b+树的优点 为什么数据库用b+树不用红黑树 为什么内存中用红黑树不用b+树 查询效率对比
b+树也是二分搜索吗,查询为什么二叉树快而不是三叉树
b+树的哪个特性有利于磁盘访问
分布式系统之间的调用解释一下
订单交易系统如何用分布式,落单如何防止重复落单
如何解决并发问题,数据库和分布式锁哪个效率好一点
大量的并发请求可能会导致数据库锁争用,这里是什么锁
分库分表介绍一下,按什么逻辑分
按mod分表扩容是否会出现问题
如何解决路由问题
双写策略什么时候切写什么时候切读,如何保证切的一瞬间不会有问题,如何保证稳定,如果一个写成功一个写失败,重试,双写如何提高效率
手撕 一群人排队,生气为A,不生气为P,每分钟生气传播,生气的人会把后面不生气的人变生气,问最后一个人变生气的时间
【二面】
手撕 基于数组实现一个大根堆,并提供添加元素和删除堆顶元素的操作
双写策略进行 MySQL 数据迁移 双写写失败了怎么办
电子信息或者自动化专业学习了计算机哪些课程
线程同步的方式
项目里用到redis哪些知识
计算机网络分为几层
tcp udp区别
拥塞控制
向百度发一个网络请求具体的流程是什么 路由器和网关在其中扮演了怎么样的角色
http https区别
死锁怎么排查和处理
多进程如何同步