热门话题白皮书HR资料
后端面经 | 百度40道面试题汇总,注重八股文和实践能力!
2024.01.15

企业简介:百度,全球最大的中文搜索引擎、最大的中文网站。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。



百度拥有数万名研发工程师,这是中国乃至全球最为优秀的技术团队。这支队伍掌握着世界上最为先进的搜索引擎技术,使百度成为中国掌握世界尖端科学核心技术的中国高科技企业。






本人信息:上海双非本 + 985 硕,目前在读研二。本科+研究生大部分时间都在搞算法, NLP 相关,后来终于认识到了理想和现实的差距,遂在2022年5 月份下定决心转后端开发。


暑假7月底的时候正式开始学习Java,历时三个月,9月底开始投日常实习,10月17结束。面试过的公司包括:B站,蔚来,百度,字节,B站挂在二面,其他均拿到日常实习的Offer。


大家能看出,我的战线比较短。但是在这些时间里,我的作息基本上都是早7晚11,很辛苦。


接下来给大家分享一下百度的面试经验,总结了面试过程中被问到的知识点(还记得的部分),以及我个人的一些心得体会,供大家参考。


面试体验


百度给我的面试体验还是蛮好的,是我面试的所有公司中唯一一家对八股考察非常详细的。


一面是非常详细的八股面试,涉及到Java基础知识、数据库、spring、jvm、多线程、场景设计等等,基本上准备的都被问过了,但是整体来说难度不高,知识面比较广但是不会深挖。


二面来说区别就非常大了,注重实践能力的考查,而且会深入到底层原理。


面试之前会有自我介绍的环节,包括项目介绍。百度两面对我的项目提问都不多,可能是我介绍项目的时候就比较详细的原因。


面试知识点


1、百度一面(1h+)

● 常用GC算法,常用的垃圾收集器,G1了解吗?

● 场景题:cpu打满且频繁full GC,怎么解决?

● 有jvm调优的经验吗?实际工作中遇到过内存相关的问题吗?用过哪些堆栈工具调试?

● Mysql索引,数据结构为什么使用B+树?

● 索引覆盖了解吗?

● 索引失效的场景?

● 简单描述一下数据库的四种隔离级别以及对应的三种相关问题?

● MVCC+锁保证隔离性?

● 造成幻读的原因了解吗?快照读、当前读?

● 数据库自增ID和UUID对比?

● HashMap源码,数据结构,如何避免哈希冲突,对比HashTable?

● HashMap源码中,计算hash值为什么有一个高16位和低16位异或的过程?

● 为什么重写equals还要重写hashCode,不重写会有什么问题?

● ConcurrentHashMap底层实现,扩容问题。

● 如果让你自己实现哈希表,你会考虑什么问题?

● 场景题:亿级别黑名单、短链接,你考虑使用什么数据结构?布隆过滤器、前缀树。其中布隆过滤器问了基本的原理和实现方式。

● Java引用类型,强软弱虚。

● Java是引用传递还是值传递?

● Object类你了解哪些方法?

● 接口和抽象类的区别?

● 线程池核心参数,以及工作原理?

ReentrantLock对比sync锁?lockInterruptibly()、acquire()、tryAcquire() 方法?

● CAS机制了解吗,存在什么问题?

● 对象锁和类锁的区别?

● 如果让你自己实现阻塞队列,如何实现?阻塞唤醒这一部分,如何实现?

● ThreadLocal ,Volatile。

● 看你项目中用到了Netty,简单介绍下吧。这里还有个问题是问到Netty和SpringBoot整合的,但我一直都没理解她想问什么。

● 粘包拆包问题,Netty解决粘包拆包的Decoder。

● Spring事务了解吗,Spring事务的注解不生效,是什么原因?

● 算法题:手写快速排序,时间复杂度,稳定性整理感觉不错,基本都答上来了,按照Guide哥星球里的内容,认真准备就好。


2、百度二面45 min)

● 看你项目中用了一致性哈希做负载均衡,简单介绍一下。

● 项目中CompletableFuture如何使用的?

● 算法题:给定一个字符串,找到其中最长回文串。

● 计网和组成原理学过吧,你认为哪个掌握的好?我选了计网。这一部分问的很深入,我没来得及记录,以下部分只是一些零散片段,但是整体问的时候是有逻辑的。

● OSI七层模型

● TCP三次握手,四次挥手整个过程包括状态的转换。为什么是三次握手、四次挥手。发送Fin,实际的意义代表什么?(发送方没有数据要发送了,可以断开连接)

● 四次挥手,为什么等待2MSL。

● 流量控制、拥塞控制。

● 后面关于网络就更深入了。TCP底层是怎么实现的,如果让你用Java模拟TCP的过程,做一个仿真,你有什么想法?大学学习计网的时候,协议栈之类的了解过吗?(这部分我都不懂,认栽了)

● 看你项目中用到了Spring,自动装配的过程了解吗?

● Spring启动类的注解,介绍一下。

● 因为我项目中用到了,所以被提问了Spring二次开发常用的扩展点,还涉及到了Bean的生命周期。BeanPostProcessor,在你项目中如何使用的?

● Spring中你常用哪些注解?Autowired实现原理。


计网仿真TCP以及后面深入的部分我不懂, Autowired实现原理没说清楚,其余的都答上来了。


——以上面经来自牛友@ConquerJ.


求职传送门

*复制网址移步浏览器粘贴,体验更佳哦~
投递简历: 
https://link.youzhiwk.com/r/r535lDBCUt
 面经合集:
https://link.youzhiwk.com/r/5A06eoYIAb
 百度内推:
https://link.youzhiwk.com/r/X6pTfXB4pp