百度后端研发oc,两面面经

only两面,应该是个日常吧,做百度云云计算的,C++/ Go,暑期已经伤透了我的心,决定干个日常然后all in秋招了

一面(50min)
1.项目介绍与拷打
2.raft选举
3.选举失败怎么办
3.leader和follower挂了分别怎么处理
4.新节点加入后要复制全量日志吗,日志量太大怎么办(快照压缩)
5.实习介绍与拷打
6. Proactor与Reactor
7.什么场景使用异步IO,什么场景使用同步IO?
8.epoll,select和poll
9.操作系统的启动过程
10.进程与线程
11.用户态与内核态
12.lazy allocation过程
13.多级页表的好处
14.cpp多态
15.智能指针
16.循环引用
17.手撕LRU
18.反问

二面(1h20min)
压力面,说啥都质疑,答对无反馈,手撕两hard
1.非常深入的实习拷打,上来就把我打蒙了
2.死锁
3.如何排查死锁
4.锁竞争过程中,如何防止某些进程一直抢不到锁导致饿死
5.什么情况会导致内存泄露(裸指针,shared ptr循环引用,多态下父类析构函数非虚函数)
6.详细解释一下最后一种情况为什么会导致子类对象内存泄露?如果子类对象无任何内容呢?(有点没理解面试官意思,答了一个类即便是空的,也要占1字节内存)
7.介绍智能指针
8.三道智能指针应用场景题(汗流浃背)
9.说一下你说了解的所有stl容器和他们的底层原理(queue和deque不知道,回去查了一下queue是deque实现的,deque底层是分块数组)
10.手撕两hard(个人认为这两题应该都对标力扣hard,后面查到了第一题确实力扣有,是hard),给了个链接跳转英文题,噩梦开始
第一题是实现一个最高频率栈,每次弹出最高频率的元素中的一个,如果有多个,弹出最顶上的那个(答了用两个栈实现,有点暴力,面试官不满意,遂寄,回去想了想,应该是栈+哈希表)
第二题跳格子,滑动窗口+dp,一开始想歪了,以为是贪心,好在后面圆回去了
11.反问业务(面试官只答了一句话,明显不耐烦了。到这里我以为我必死无疑了,已经在准备快手的下一面)

第二天和问hr姐姐,啥时候发感谢信?
答,面试通过了,稍后电话联系你
问,啊?只有两面???
答,是的
遂上京
全部评论
接只有两面
3 回复 分享
发布于 03-27 09:44 湖南
同百度两面oc,现在职,我咋感觉我那时候强度没有这么大
点赞 回复 分享
发布于 09-06 08:29 北京
接只有俩面
点赞 回复 分享
发布于 06-05 21:23 陕西
佬,手撕是只用说思路吗
点赞 回复 分享
发布于 05-05 20:36 陕西
tql
点赞 回复 分享
发布于 04-02 19:29 北京
uu请问是怎么联系的hr呢谢谢
点赞 回复 分享
发布于 03-31 12:50 北京
mark
点赞 回复 分享
发布于 03-27 20:36 广东

相关推荐

昨天 15:09
武汉大学 Java
点赞 评论 收藏
分享
一、 系统架构与设计1.  技术栈与选型:◦   介绍你的架构(Go + Gin + GORM)。◦   MongoDB在架构中起什么作用?(与MySQL/Redis/本地缓存区分开)◦   为什么选择Gin框架?与其他Go框架相比,Gin的优缺点是什么?◦   还了解哪些其他Go框架?◦   技术栈选型的依据是什么?(是实习项目还是个人项目?基于什么考虑?)2.  缓存与数据一致性:◦   详细说明如何使用MySQL + Redis + 本地缓存实现高并发数据处理逻辑。◦   所有数据是否都持久化在MySQL中?◦   三级/两级缓存数据同步:▪   在并发读写下,如何保证缓存数据同步的可靠性?▪   举例说明:高并发下,对同一数据的读写流程。是先写Redis还是先写MySQL?数据如何同步?▪   如何保证Redis、MySQL以及本地缓存之间的数据一致性?◦   使用Pub/Sub实现缓存更新通知的具体机制是什么?◦   如何保证Pub/Sub的可靠性?3.  数据库:◦   慢查询定位:如何定位和解决慢查询问题?◦   索引:▪   联合索引(a, b, c)的最左前缀原则是什么?哪些查询能命中索引?哪些不能?4.  微服务与通信:◦   为什么使用gRPC?与HTTP相比,gRPC的优缺点是什么?◦   对于内部通信,gRPC调试比HTTP困难,为什么仍认为它是最优选择?◦   系统被拆分成几个微服务?它们之间是否全部使用gRPC通信?◦   如何对gRPC服务进行Debug?◦   在项目中,etcd的作用是什么?二、 部署与运维1.  Kubernetes (K8s):◦   服务是否部署在K8s集群上?◦   对K8s了解多少?能简要介绍吗?◦   是否有在K8s集群上实际部署服务的经验?(即使是单节点集群)◦   描述一下使用kubectl apply部署一个Pod的完整流转过程(从命令发出到Pod创建成功,涉及哪些K8s组件)。2.  Docker:◦   对Docker的操作熟悉吗?常用命令有哪些?◦   如何通过Dockerfile将一个二进制文件制作成镜像?Dockerfile的基本命令有哪些?三、 Go语言基础与核心概念1.  内存管理:◦   什么是内存逃逸?◦   内存逃逸会导致什么后果?◦   逃逸到堆上的对象会被GC回收吗?◦   能否举一个导致内存逃逸的代码例子?(例如,在函数中返回局部变量的地址)2.  并发编程:◦   goroutine 和线程的区别是什么?◦   如何在并发环境下安全地操作map?(引出sync.Map)◦   代码题:如何使用channel实现两个goroutine交替打印(一个打印数字,一个打印字母)?3.  常用特性:◦   defer 的使用场景?在一个包含文件打开、读取、处理的函数中,defer file.Close() 放在哪个位置最合适?为什么?◦   切片(Slice)与数组(Array)的区别?为什么Go要区分这两个概念?◦   切片使用append追加元素时的底层逻辑是怎样的?扩容机制是什么?(例如,扩容时如何分配新内存大小)四、 网络知识•   描述从浏览器输入www.baidu.com到显示出页面的完整流程(URL解析、DNS查询、TCP连接、HTTP请求、负载均衡、服务器处理、响应返回等)。五、 面试反馈与建议•   面试官最后指出,面试考察的是底层基础知识(如TCP/IP、Go语言核心),不能只停留在理论,必须能动手写代码解决实际问题。并举例说明了defer的使用和内存逃逸的代码实践的重要性。百度的问题感觉都不难,但是问到后面需要我进行写代码,业务代码基本没怎么写过,都是背的八股,练手的都是算法,确实是薄弱点,有点可惜了
点赞 评论 收藏
分享
评论
19
71
分享

创作者周榜

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