百度后端开发日常实习面经(一二面完整记录)

  • 公司:百度
  • 岗位:后端开发日常实习生
  • 面试轮次:技术一面+二面
  • 面试特点:重基础、多场景题、算法与工程实践结合

一面深度复盘(40分钟)

项目提问

面试官首先围绕实习项目展开讨论,随后重点考察了Spring框架核心机制:

  1. AOP运行原理:从代理模式到切面执行流程
  2. 动态代理详解:对比JDK动态代理与CGLIB实现差异
  3. 分布式锁实战
  • Redis实现锁的可靠性问题
  • 服务宕机后的锁处理方案
  • Redission的看门狗机制解析

注:这部分分布式系统知识正是"山羊算法后端训练营"分布式专题的精华内容,训练营通过im项目实战案例讲解Redission最佳实践

网络协议对比

  1. Websocket与HTTP协议核心差异
  2. 即时通讯专用协议选型(如MQTT、XMPP)

经典八股文

浏览器输入URL全过程:从DNS解析到渲染引擎工作流程

算法手撕

  1. 快速排序实现:考察分治思想与边界处理
  2. 最长无重复子数组:滑动窗口典型应用 这两道题都是"山羊算法后端训练营"算法模块的标杆例题,特别是滑动窗口专题会通过6种变体题系统训练解题思维。

二面攻坚实录(60分钟)

深度场景设计

线程超时控制方案:需要设计一个具备超时中断能力的任务执行框架,涉及:

  • FutureTask的cancel机制
  • 线程中断信号处理
  • 线程池的优雅关闭

SpringMVC核心机制

  1. 请求处理全流程:从DispatcherServlet到视图渲染
  2. 返回方式对比:
  • ModelAndView的视图解析过程
  • @ResponseBody的消息转换机制
  1. 控制器定位原理:HandlerMapping的工作逻辑

算法与数据结构

  1. 找唯一奇数:位运算的巧妙应用(异或特性)
  2. 海量数据TopK:堆结构的经典应用场景
  3. Java堆实现:PriorityQueue的底层原理
  4. 数学变换问题:二进制位操作的最优解分析
  5. 队列模拟栈:数据结构转换的思维训练

二面的所有算法题在"山羊算法后端训练营"都有对应专题:位运算精讲、堆结构应用、特殊数学问题等模块不仅讲解解题套路,更会延伸出大厂真题变形题。

面试官偏好分析

  1. 重视工程思维:每个技术点都会追问实际应用场景
  2. 爱考转换思想:如队列/栈互转、数字位操作等
  3. 爱挖底层实现:框架原理常问到源码级别

备战建议

  1. 吃透Spring核心模块运行机制
  2. 准备3-5个深度掌握的技术点(如分布式锁、网络协议等)
  3. 重点突破位运算、堆结构等高频算法类型
#百度##面试##后端开发##Java##面试中的破防瞬间#
全部评论
哪个部门呀大佬
点赞 回复 分享
发布于 04-02 16:02 辽宁
佬在哪投的
点赞 回复 分享
发布于 04-02 00:58 广东
点赞 回复 分享
发布于 04-01 16:20 广东

相关推荐

09-02 22:36
已编辑
北京邮电大学 Java
行业合作平台 base 北京1. 自我介绍2. 点评项目超卖问题怎么解决的3. 乐观锁什么问题,比如说十个线程同时到,无限自旋次数,最多会相当于多少个请求打过来(10+9+8+……+1 = 55)4. 高并发场景下有什么问题(就答了个线程安全)5. 使用悲观锁呢,乐观锁重复请求会很多,悲观锁效率低,那该怎么办(这里没答出来,就说了个存到redis内预扣减)6. 存到redis内预扣减的话lua脚本该怎么写7. 为什么用lua脚本能保证原子性(这里稀里糊涂的说了单线程,然后面试官就扯到多线程,然后就说多线程具体是怎么多线程的)8. 为什么使用redis效率就高,使用java能实现这种效率吗(说实话,这里没太明白要问什么)9. 一人一单怎么解决的,使用了分布式锁10. setnx为什么能实现分布式锁11. 使用分布式锁有一个问题,业务没执行完超时释放了,那怎么办12. 使用redission了是吧,底层是怎么续期的呢(这里回了看门狗机制,然后直接让手撕看门狗)13. 写了15min左右看门狗,写的依托,面试官也没说啥,看我前五分钟没动,说可以用伪代码,也不用完全一样(好人面试官)14. 项目拷打完直接JVM,内存分区有什么15. 元空间中存的是什么东西,运行时常量池里面存了什么,和堆中的字符串常量池有什么区别16. 简单完整的说说垃圾回收(这里说JVM会监控内存然后内存不够就启动gc)17. 什么情况下会触发gc(答了new一个对象空间不够的时候,还有system.gc()可能会调用)18. 既然system.gc()不一定会启动gc,那么还要他干什么(我这直接蒙,不知道在问啥)19. 判断无用对象方法(引用计数法、可达性分析)20. 可达性分析法中,没有被gc roots标记的对象怎么处理(这里也不知道在说啥,直接答了一个标记的对象放到一块,然后剩下的直接清理)21. rabbitmq在项目中怎么用的22. 什么情况下要使用rabbitmq23. 又回到了项目,我要取消订单的时候mq该怎么使用(这里说取消订单放到另一个队列中)24. 那么这两个队列一个是取消队列,一个是正常的下单队列,那要是取消队列的消息先被消费,然后才是下单队列被消费改哦怎么办(这个mq完全没见过,直接说不知道)25. 线程池七大核心参数26. 线程池提交任务怎么修改成核心线程->非核心线程->阻塞队列,这种方式(这里就答了同步队列,后来查了发现是要自定义阻塞队列)27. mysql建表的时候要注意什么28. mysql创建索引要注意什么29. limit有什么问题(答了深度分页问题)30. 有了解过大模型什么的吗面试官人很好,手撕redission看门狗的时候宕机了5min也没push,有的地方答得慢了也会提醒,但是有的问题确实是没太看懂要问什么两个小时之后约9.4二面
查看30道真题和解析
点赞 评论 收藏
分享
评论
6
30
分享

创作者周榜

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