百度一面面经

常规问题:

1. 3分钟简单自我介绍
2. 在实习和开源经历中,你遇到的最大困难或最具挑战性的事情是什么?

实习拷打(拓展相应的场景八股)

慢 sql 治理相关的

1. 你在平台稳定性建设中提到通过添加索引、读写分离优化慢SQL,具体是怎么做的?
2. 读写分离可以再详细说一下吗
3. 能否举一个添加索引的具体例子?比如在哪个字段上加了什么类型的索引?
4. 你加的是单列索引,如果查询只需要表中的几个字段,当前的单列索引是否有优化空间?
5. 联合索引相比单列索引的优势是什么?为什么更优?(从回表,索引下推优化那个方向说就好)

es 慢查治理相关

1. 关于ES扩容主分片优化查询,具体是怎么做的?
2. 系统的ES集群资源配置你了解吗?(如CPU、节点数等)
3. 扩容分片数量是如何确定的?仅依据数据量吗?
4. 分片切割后为什么查询会变快(并行查询)
5. 将 long 类型字段转为keyword类型,是如何利用跳表结构的?这里其实并不能,只是切换是为了适应精准匹配的场景,keyword 的底层用的是倒排索引+跳表
6. 除了分片扩容和类型转换,还有哪些方式可以优化ES慢查询?(force merge 整理碎片)

分布式锁(业务中有个并发修改用到了,主要问的一些分布式锁的实现细节)

1. 你在业务中使用的分布式锁是标准库还是自研的?
2. 让你自己实现一个最简单的分布式锁,你会怎么实现?
3. 如果任务加锁后异常退出,没有释放锁,如何避免死锁?
4. 如果任务执行时间很长,锁过期被其他任务获取,原任务完成后误删了别人的锁,如何解决(防止锁的误释放,加标识)
5. 如果任务A包含多个子任务,且子任务本身也有加锁逻辑,在嵌套调用时会因重复加锁失败,如何解决?(可重入锁的实现)
6. 在秒杀场景下,能否直接用分布式锁控制库存扣减?会有什么问题?
7. 如何让秒杀请求不立即失败?(锁的自旋)

并发编程

1. 你使用CompletableFuture并发查询多个维度,底层是如何实现并发的?
2. 你是自己定义线程池,还是使用默认线程池?
3. 你是基于什么依据设置线程池参数的?
4. 如果一个任务同时包含CPU密集型和I/O密集型操作,共用一个线程池会有什么问题?应该如何设计?(线程池隔离,避免cpu密集型任务阻塞I/O密集型任务)

Agent和开源相关的内容

1. 你的基座模型切换(DeepSeek → 千问)后,响应是流式还是非流式?
2. 为什么关注完整响应时间,而不是首字响应时间?(主要是业务上的一个需要)
3. 你的性能优化目标是在保证输出内容不变的前提下缩短生成时间吗?
4. 你在Agent框架中使用了责任链模式和观察者模式,请分别解释这两种模式
5. 既然有四个固定执行步骤(Agent执行前,执行后,模型执行前,执行后),是否可以用模板方法模式替代责任链模式?
6. 你使用观察者模式的具体场景是什么?为什么选择它?
7. 你还了解哪些常用设计模式?
8. 你提到使用HNSW算法进行向量搜索,能简述其基本原理吗?(避免全表的向量查询)
9. 为什么不直接用余弦相似度做全量匹配,而要引入HNSW?
10. 你是否使用过BM25算法?它的作用是什么?
11. 向量搜索有哪些弊端?
12. 向量检索和BM25全文检索的得分量纲不同,如何进行混合排序?(引入一个精排模型重新打分)

反问:
1. 业务(智能客服相关)
2. 不足,基础还需要加强

无手撕,总体一个小时

总结:面试体验很好,主要就是根据简历延伸一些八股和简单场景,有些还需要加强的地方,挖出来了自己基础上的一些问题
全部评论
发我最新简历
1 回复 分享
发布于 11-26 09:34 广东
太强了
点赞 回复 分享
发布于 11-27 23:33 上海
强啊给大佬👻了
点赞 回复 分享
发布于 11-26 17:25 浙江
给大佬跪了
点赞 回复 分享
发布于 11-25 15:30 北京
耐面王
点赞 回复 分享
发布于 11-25 06:57 北京
大佬来百度跟我🤺
点赞 回复 分享
发布于 11-25 00:55 北京

相关推荐

11-27 22:23
已编辑
门头沟学院 前端工程师
【11.21 百度一面】:1:自我介绍2:小程序项目介绍(面试官比较感兴趣这个)3:实习项目简单问了一下4:可视化5:大文件上传整体的思路、断点续传具体怎么实现?6:讲一下transform怎么使用的(提到小程序里面的一个应用)7:react常见hook8:父组件A里面有一个子组件B,子组件B使用useMemo()缓存值,如果A重新渲染,会导致B中useMemo重新计算嘛?        (回答:分情况,要是缓存的值中有父组件传递的props就还是要)9:无限滚动加载和图片懒加载10:拦截器主要做了些什么工作?11:数组常用方法?12:你做了可视化大屏展示,现在有多个大屏,怎么适配各种尺寸呢?(答了媒体查询,为每一个尺寸范围适配不同的比例大小)追问:如果提前不知道大屏的宽度呢答:可以使用flex响应式布局,比如flex 1 自动填充剩下的内容区域13:说一下事件冒泡是什么,怎么阻止冒泡(用e.stopPropagation())14:手搓 轮播图(太久没有写react了,面试官一直耐心指导,最后还是没搓出来,说了一下实现原理)15:反问业务、技术栈、实习生培养方案一面的面试官真的超级好,就我面试以来(七牛云、金蝶、懂车帝)是最好的一个了。一点一点指导,面试用的“如流”这个软件,中间断联了两次(一次网络断开,一次电脑没电直接关机,人傻了直接),结果面试官一点都没生气,还是很耐心的讲面完,10分钟不到,发消息,约二面...【11.24 百度二面】1:自我介绍2:Promise哪些常用方法3:大文件上传4:手写Promise.all (有一点点小缺憾)5:懒加载怎么实现的 (IntersationObserver)6:react的懒加载怎么实现(同上 + React.lazy结合Suspense)7:react常用hook8:useCallback和useMemo说一下9:手撕一个react自定义hook:getPrevieusValue(value) 传入一个值(state),获取他上一次的状态值(用的是map+数组存)面试官:其实可以用ref,因为你现在这个实现的话,依照的是状态,万一不小心改变了状态可能导致页面重新渲染8:3s后页面上显示啥?为啥?const app = () => {const [count, setCount] = useState(0)const [countTime, setCountTime] = useState(0)useEffect(() => {let timer = setTimeout(() => {setCountTime(count)}, 3000)setCount(5);() => clearTimeout(timer)}, [])return (<div>count:{{ count }}countTime:{{ countTime }}</div>)}(答了:分别是5和0,因为react状态是一个快照,他每计算次依照的是当前这一刻的状态(还好之前看过官方文档))9:上一个问题,那我想让都显示5怎么办?(提到用函数式更新、flushAsync、Ref持久化绑定)面试官:也可以在useEffect依赖里面加 count10:redux使用过嘛? 了解过基于redux开发的第三方工具嘛?(不了解)11:为啥使用redux不用useContext呢?12:说一下小程序的分包机制和分包预加载13:手写:数组转成树结构(没写出来[我算法太弱了[苦涩]],说了思路,用递归)const a = [{id: 1, parent: null, name: 'Big'},{id: 2, parent: 3, name: 'hello'},{id: 3, parent: 1, name: 'aloha'},{id: 4, parent: 1, name : 'yes'}];const b = {id: 1,name: 'big',children: [{id: 3,name: 'aloha',children: [{id: 2,name: 'hello',children: null,},],},{id: 4,name: 'yes',children: null,},],};面试官说你思路没问题,然后就给我讲了一遍非递归的实现思路如流这个软件,不知道是不是不适配我的电脑还是啥,面试的时候一直掉线(掉了四五次),开始我还以为我的网有问题,不过好在面试官没有生气,而且手撕题还给我耐心纠错和指导,也是很好的一个面试官【11.27】hr电话正上体育课,刚测完1000m,累成憨憨了,摊在地上结果忽然收到hr的电话,oc,下午1点多快到2点的时候,收到正式offer邮件......【插话】本来二面结束(周一),感觉没戏了,周二到周四整个人都是一个将die的状态,浑身不舒服,也没胃口,觉也睡不好,期间还面了懂车帝、深圳锐明技术,懂车帝面成粑粑了、锐明面的很好,但是这俩截至目前都没有下文面试,运气真的很重要,要是遇到一个恶心人的面试官,神来了也得挂。唯一 一点幸运的是,我做过小程序,刚好和他们组技术栈和业务匹配,同时干小程序的人本身也不多,所以被面试官看上了吧,要是投的其他业务组,一面都得挂
发面经攒人品
点赞 评论 收藏
分享
一、 系统架构与设计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的使用和内存逃逸的代码实践的重要性。百度的问题感觉都不难,但是问到后面需要我进行写代码,业务代码基本没怎么写过,都是背的八股,练手的都是算法,确实是薄弱点,有点可惜了
点赞 评论 收藏
分享
评论
9
17
分享

创作者周榜

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