灵犀互娱服务端实习-二面
编程语言
===
C++多态的核心原理是什么?答了运行时多态(继承)和编译时多态(模板)
构造函数为什么不能是虚函数?答:因为构造时虚函数表未初始化
项目
===
问项目中选用Kafka, Redis, Mongo的原因?
问一个项目(线上书城)的并发量多少?答:Spring Boot框架处理一部分并发问题,并且通过悲观锁防止超卖
面试官问是否是自主选择Kafka, Redis, Mongo这些数据库/中间件?答:按照应用场景选择对应的技术,举了使用Redis做书籍基本信息缓存的例子(将话题引导到Redis)
引导成功,面试官问初始时的数据是如何放到Redis中的?答:Cache Miss时回写缓存
面试官追问:Redis放不下怎么办?答:设计的时候没有考虑这个问题,但是我现在思考了一下,或许可以通过一些缓存驱逐策略(比如LRU),限制Redis缓存使用的内存量?
Kafka在项目中的作用?答了异步消息队列和具体的业务场景
面试官觉得在这个场景下使用Kafka和数据库的区别似乎不大?答:使用Kafka可以实现消息的订阅机制,如果将订单请求存数据库,前端需要一直轮询
面试官让我详细介绍了一个项目(LSM-KV相关),介绍完之后不断深挖,最后问了:如何修改跳表数据结构,使得可以快速查找到key指定排名的节点?没答上来,面试官建议去看看Redis源码中的跳表
场景题
===
设计游戏的任务系统:玩家杀怪、和NPC聊天、制作东西等行为会触发某些任务进度的修改或者任务的完成,要求快速查找到某个任务、快速删除、更新任务进度。你大概会使用什么数据结构作支撑?
思考了几分钟,追问:有限制玩家按照特定的顺序完成任务吗?面试官说:不用考虑那么复杂的情况
答了使用AVL树或者红黑树等平衡树存储任务的索引,与线性表相比,查找、删除、修改的时间复杂度都是O(logN),综合下来性能比较优
面试官追问:玩家杀怪的时候,系统如何知道杀怪是属于某个任务,并更新对应任务的进度?想了想:把不同的任务分放在不同的任务树上,比如杀怪事件都放在同一个任务树上、和NPC聊天的事件都放在另一个任务树上,这样杀怪事件发生后,只需要在杀怪任务树上查找,并更新相关任务节点的任务。
闲聊
===
简历上写的掌握的编程语言,是大学里教的,还是自己学的?
简历上写的项目是课程项目、还是自发参与的项目?想了解一下
为什么投递服务器开发岗位?
反问
===
介绍一下部门业务?
自评
===
第一次进二面,面试前更紧张,但是面试开始后就逐渐不紧张了,面试总时长50min左右,没有问算法手撕感觉有些没底,希望能进HR面吧。
== 4.11更新
灵犀上海hc太少了,二面后横向比较挂
好心的hr姐姐说帮我联系下广州总部,那边给的答复是倾向于招有转正的实习生,婉拒了🥲
===
C++多态的核心原理是什么?答了运行时多态(继承)和编译时多态(模板)
构造函数为什么不能是虚函数?答:因为构造时虚函数表未初始化
项目
===
问项目中选用Kafka, Redis, Mongo的原因?
问一个项目(线上书城)的并发量多少?答:Spring Boot框架处理一部分并发问题,并且通过悲观锁防止超卖
面试官问是否是自主选择Kafka, Redis, Mongo这些数据库/中间件?答:按照应用场景选择对应的技术,举了使用Redis做书籍基本信息缓存的例子(将话题引导到Redis)
引导成功,面试官问初始时的数据是如何放到Redis中的?答:Cache Miss时回写缓存
面试官追问:Redis放不下怎么办?答:设计的时候没有考虑这个问题,但是我现在思考了一下,或许可以通过一些缓存驱逐策略(比如LRU),限制Redis缓存使用的内存量?
Kafka在项目中的作用?答了异步消息队列和具体的业务场景
面试官觉得在这个场景下使用Kafka和数据库的区别似乎不大?答:使用Kafka可以实现消息的订阅机制,如果将订单请求存数据库,前端需要一直轮询
面试官让我详细介绍了一个项目(LSM-KV相关),介绍完之后不断深挖,最后问了:如何修改跳表数据结构,使得可以快速查找到key指定排名的节点?没答上来,面试官建议去看看Redis源码中的跳表
场景题
===
设计游戏的任务系统:玩家杀怪、和NPC聊天、制作东西等行为会触发某些任务进度的修改或者任务的完成,要求快速查找到某个任务、快速删除、更新任务进度。你大概会使用什么数据结构作支撑?
思考了几分钟,追问:有限制玩家按照特定的顺序完成任务吗?面试官说:不用考虑那么复杂的情况
答了使用AVL树或者红黑树等平衡树存储任务的索引,与线性表相比,查找、删除、修改的时间复杂度都是O(logN),综合下来性能比较优
面试官追问:玩家杀怪的时候,系统如何知道杀怪是属于某个任务,并更新对应任务的进度?想了想:把不同的任务分放在不同的任务树上,比如杀怪事件都放在同一个任务树上、和NPC聊天的事件都放在另一个任务树上,这样杀怪事件发生后,只需要在杀怪任务树上查找,并更新相关任务节点的任务。
闲聊
===
简历上写的掌握的编程语言,是大学里教的,还是自己学的?
简历上写的项目是课程项目、还是自发参与的项目?想了解一下
为什么投递服务器开发岗位?
反问
===
介绍一下部门业务?
自评
===
第一次进二面,面试前更紧张,但是面试开始后就逐渐不紧张了,面试总时长50min左右,没有问算法手撕感觉有些没底,希望能进HR面吧。
== 4.11更新
灵犀上海hc太少了,二面后横向比较挂
好心的hr姐姐说帮我联系下广州总部,那边给的答复是倾向于招有转正的实习生,婉拒了🥲
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享