总体流程 2022.7.12 投递简历(让朋友给推的,可能是组内直招) 2022.7.15 11:00 一面 2022.7.19 17:00 二面 2022.7.20 10:00 oc  一面(35min) 由于面试官看过我的简历和github,所以跟走过场一样 也很感谢面试官认可我 自我介绍 八股/项目(20min) 介绍webserver epoll和poll的区别 OSI 7层模型 tcp和udp的区别 tcp三次握手、四次挥手 算法题(15min) 在IDE自己写,需要跑 自己实现一个栈 用数组实现的   用栈实现队列,用自己之前实现的(两个)栈(LeetCode 232) 反问 部门在做的业务/工作 地图架构,主要跟导航的业务对接   技术栈 redis、滴滴自己的fusion和mq    二面(60min) 自我介绍 面试官觉得我的自我介绍太多(长)了 八股/项目(25min) 面试官对着简历的每一个字细抠(尤其是专业技能那块),反正很可怕,第一次遇到这种面试 真的是人生中最尴尬的一场面试 你熟悉STL、智能指针是吧?为啥要用智能指针? 八股文   智能指针的原理? 八股文   你熟悉快速排序和归并排序是吧?这两者的共同点? 都用了分治思想   快速排序的时间复杂度? 先说了结论,但是面试官需要分析过程 然后简要分析了   关于内存管理,都知道哪些内容? 什么是虚拟内存(说完了这个,面试官觉得我说的太少了,麻) 为什么要用虚拟内存 虚拟地址映射到物理地址的流程   设计模式:除了单例模式、工厂模式,还了解什么设计模式? 代理模式 主要是这两个   什么时候用单例模式? 在整个程序中,这个类只需要这一个对象   什么场景用到单例模式? 举了自己的项目,异步日志系统、数据库连接池 为什么数据库连接池就得是单例呢?(麻了,不会)   redis:知道什么数据结构? 说了最常见的这5种   zset底层是什么数据结构? 数据量少了用压缩列表,数据量多了用跳表   为什么用跳表,不用别的数据结构? 不清楚,就说了跳表跟搜索树的不同,和链表的不同,然后好像提到了可能是跳表更方便范围查询 面试官问,那就是应用场景的不同了? 我说大概是的   RPC自定义协议的设计?为什么要用? 之前被问过,所以回答上了   RPC请求怎么发的? 通过socket   webserver的代码量? 用cloc测的是3k行左右   webserver的登录和注册功能,为什么要实现它? 是单纯想自己实现    算法题(10min) 在自己的IDE写,需要运行 手撕快排,其实写的很快,但是犯了个低级错误,所以拖到了10min 开放题(25min) 有一个服务,要调用一个日志服务,这两个服务都在本机。这个服务同时要调用很多次日志服务,也就是这会带来很大的性能瓶颈。应该怎么去优化? 我首先说了socket的优化,但是面试官说这个可以忽略 然后我想不到,面试官就说其实就是可以把这些日志聚合起来,只发一次,这样就可以减少发的次数了 然后说了下缓冲区的设计,需要加锁 然后面试官说加锁不行,严重影响性能,把并行的操作变成串行的了 我说那就用原子操作,面试官也说,这也就是另一种加锁的了,是否有更小粒度加锁的方案? 然后我想不到,面试官就说,可以把缓冲区分成多个桶,这是个分治的思想 然后我说根据要写入的区间,来确定各个线程在哪里写入 最后面试官说没有我想的这么复杂,就是要用字符串哈希,去索引哈希表(真没想到) 问了同学,这是海量数据处理的常见套路,凉 反问 如果有幸拿到offer,需要提前学习什么内容 golang,其他也没啥了,基础的话你也都具备了   一般会让实习生做什么?会让刚来的实习生干啥? 总结 挺凉的,如果没有最后一道题其实也还好,这一面之后应该是没了吧 第一次被这样面试,大写的尴尬,写上简历的内容一定要好好复习,至少得烂熟才行 (其实感觉比之前字节面的凉很多,居然oc了,也是离谱,并且面试官说,面了这么多人当中,说我基础很好。只能说明面试是一门玄学)
点赞 12
评论 4
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务