快手C++一面凉经:

面试官网络很差,中途断了5 6回;
1.自我介绍
2.介绍一下实习都做什么了,不想留下吗?
3.挑一个项目介绍一下,讲一讲难点,(webserver)线程池里面任务队列是无限的还是有限的,如果客户请求的任务太多了数组爆了怎么办,就把请求给丢了吗,你这个设计有问题啊;(大脑一片空白直接懵逼)
4.讲一讲C++11的新特性,说说智能指针,使用智能指针了普通指针还能用吗,什么时候用智能指针,什么时候用普通指针呢;
5.了解数据库吗,用过什么数据库,了解mysql的存储引擎吗(我说不太了解;没看过数据库)?
6.说说虚拟内存管理吧,了解swap分区吗,是做什么的;
7.说说浏览器输入一个网址到显示的过程(经典网络八股)
8.手撕代码,两个链表组成的数字求和,经典链表简单题(估计是看我不行了);
9.反问环节(直接心态崩了,说没问题再见)

怎么找个工作要会这么多啊,MySQL从来没看过还能学完吗??
被吊打了,还是要好好准备项目,整理整理
全部评论
为什么用数组作为请求队列底层的数据结构,可以用stl里的queue,list,甚至vector也可以
1 回复 分享
发布于 2023-08-05 13:43 江苏
请问讲项目需要把代码给他看吗?
点赞 回复 分享
发布于 2023-08-04 17:34 湖北
哥,后面还有机会吗?😰 八股问的多吗
点赞 回复 分享
发布于 2023-08-04 14:27 广东
老哥大概面了多久
点赞 回复 分享
发布于 2023-08-03 16:36 安徽
什么时候不都能用智能指针?你当时咋答得哥
点赞 回复 分享
发布于 2023-08-03 14:38 江苏
必须要会一种数据库的
点赞 回复 分享
发布于 2023-08-03 10:53 陕西

相关推荐

08-18 11:58
已编辑
四平职业大学 Java
查看9道真题和解析
点赞 评论 收藏
分享
头像
08-19 00:08
已编辑
武汉大学 Java
终于有八股文了。1. 自我介绍2. 个人经历盘点3. 虚拟内存的好处4. 内存为什么要有内核空间4. tcp连接断开的几种方式(拔网线,断电,杀进程),timeout不好,怎么解决(heartbeat)5. 锁类型相关(开始吟诵Java八股,C++锁其实没这么多八股)参考:https://gg2002.github.io/2025/04/21/Program%20Language%20Design/os-and-pl-mutex/6. hashmap上锁用什么好(分段锁+读写锁,或者cow),读写锁一定好吗(当然不一定)?7. C++新特性吟诵(纯吟诵,move,function,thread,constexpr,import,coroutine)8. move vector底层会发生什么9. 为什么要有thread库(楼主还真不知道,说了为了程序员更好的封装使用,面试官不满)10. static_assert底层原理(更是不知道,只能口胡编译器能推断出来)11. 算法:k个一组反转链表,在最后一个循环一直segmentation fault,闹麻了,内存地址都打印出来了还显示segmentation fault,不知道是不是平台问题。12. 反问:部门:负责主站与海外的推荐系统工作作息:弹性工作制,互联网平均作息楼主的C++八股答得不是很妙,感觉是不是快手的就爱出这种冷门八股,new怎么在栈上分配空间(答案是new本来可以指定内存区域分配内存,但是一般没人这么写,而且new还有另一个指定内存不足也不报错而是直接返回nullptr的写法,都很邪门,感觉是纯嵌入式写法)也是楼主在快手面经里看到的。最重要的k个一组希望不要挂楼主。
查看12道真题和解析
点赞 评论 收藏
分享
发面经攒人品~上来先问了下为什么不做算法(做个雷达深度学习和大模型属实是差太远),研究方向是什么,然后直接八股:1. 智能指针用过哪些,各自适合于什么场景2. 虚函数是怎么实现运行时多态的,虚函数查表的开销有多大(静态多态和运行时多态那个开销更大)?查表的时间复杂度是 O(1),因为虚函数的偏移地址在编译期间就确定了,调用的时候直接可以用,但是后面面试官又问从 cpu 指令角度看还有什么开销,问了 ai 大概有这些开销(相比于普通函数调用的开销):首先我们说下虚函数在底层角度会多执行三步:获取 vptr->计算函数地址(偏移量是编译器就定了无所谓,但需要访问虚函数表 )->调用函数- 影响最大的是如果 vptr 或vtable 不在 cpu 高速缓存中的话,会触发缓存未命中(因为前两步大致的汇编代码是 `mov rax, [rdi] ; 假设rdi是对象地址,rax = vptr` 与 `mov rbx, [rax + 0x10] ;` 需要访问内存,就会发生缓存未命中,但是普通函数或者静态多态的地址在编译器就确定了,可以直接使用固定地址调用,就无需从内存中读取数据),这会延长大约 50+时钟周期(普通函数调用就 1~3 个时钟周期)- 调用函数时,因为 call 的是间接地址(即虚函数表中存储的内存地址,存在寄存器中被调用),会导致 CPU 指令预取失效,流水线需要重新同步,产生 3~10 个的时钟周期(所以即便虚函数表在缓存中,虚函数调用也普遍比普通函数或静态多态函数慢这么多)3. 移动语义简单说一下(这里移动语义答的不是很好,一慌就和 ai 发生幻觉了一样乱吐词,可以后面多了解一下具体应用上的移动语义),问知不知道 move 的底层实现(说到强转,又问有哪些转换)4. Cpp 中有哪些锁(这部分答得不是很好,可以系统梳理一下),粒度最小的锁是哪个(基于 atomic 的原子操作是粒度最小的,精确到单个内存位置),自旋锁什么场景使用(临界区执行时间很短,自旋等待的开销小于线程阻塞/唤醒的开销,以及不希望线程阻塞的实时系统)5. 问了解哪些常用的数据结构。6. 操作系统的虚拟内存说一下,一个页大小大概是多大,还有哪些页大小,页大了或者小了有什么优缺点(可以了解一下 THP 透明大页的概念)7. 场景题:微博这种搜索平台如何设计一个实时统计一定时间段(比如 5min)内 topK 热点关键词的系统,用那些数据结构或者软件可以做到?8. 手撕 LRU9. 反问环节:主要做的是快手的搜索架构,还做一些AI搜索,与快手视频的RAG
查看13道真题和解析
点赞 评论 收藏
分享
评论
19
127
分享

创作者周榜

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