企业简介:百度,全球最大的中文搜索引擎、最大的中文网站。百度愿景是:成为最懂用户,并能帮助人们成长的全球顶级高科技公司。
百度拥有数万名研发工程师,这是中国乃至全球最为优秀的技术团队。这支队伍掌握着世界上最为先进的搜索引擎技术,使百度成为中国掌握世界尖端科学核心技术的中国高科技企业。
本人信息:上海双非本 + 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.
+
求职传送门