百度 Java 后端校招一面

回顾

1. 算法题,求数组中位数。
A:使用快排,partition() 返回当前排序索引,如果等于数组长度的一半就能提前返回。
不过时间复杂度说错了。。其实应该是 N,后来面试官帮忙纠错还认真解释,点赞嗷😊
2. 算法实现用到了重载,重载和重写有什么区别?
A:重写用于多态实现,多态分抽象多态和接口多态,涉及到字节码 invokevirtual this #<offset> 和方法表,抽象多态方法解析时调用相同偏移量的方法代码
接口多态线扫一次寻找对应方法代码。重载用于相同类方法调用跳转。
3. 项目用户接口限流怎么实现的?
A:自定义注解 + 配套的注解拦截器,Spring Boot 提供 HandlerInterceptor 快速构建,底层使用反射。
4. 谈谈对 Spring AOP IOC 的理解
啊这 一开始还以为想知道我对 AOP 的理解,扯了一堆切点、增强逻辑啥的。。
后来面试官改问AOP的实现原理,回答的是JDK动态代理和CGLIB 代理。
5. 这两个有啥区别?
A:jdk 动态代理用接口实现,对象需要实现接口;后者用扩展子类实现,private 和 final 方法不适用。
6. HashMap 实现
A:经典拉链碰撞,拉链长变红黑树,一顿bala
7. 对应的多线程版本?有啥不同?
A:jdk 1.8 ConcurrentHashMap 使用 CAS 对每个桶位加锁
8. CAS 有啥缺点?
A:说了下竞争激烈时性能明显变慢,
面试官说还有,啊这 一时想不起来疯狂顾左右而言他😂 后来才想起来乐观锁还有个 ABA 问题。。
9. 刚提到了红黑树,添加元素相关操作了解吗?
A:只说了左旋、右旋、颜色变换,面试官也没往下问,不用往下解释,算是小福利把。
10. TCP拥塞算法了解吗?
A:慢启动、拥塞避免、拥塞发生、快速恢复... 一顿balabala 面试官估计都听得耳朵起茧了。。😂
11. 数据库索引,隔离级别
A:基本功就不说了,补充了下 Innodb 用next key lock 解决可重复读下的幻读问题,事务隔离 A 使用 undo log,D 使用 redo log 实现等等。。
12. 索引这么牛逼,我给每列都设一个好吗?
A:这里回答的是辨识度。。其实就是Innodb定义的选择性(cardinality)。。一顿比划大概讲明白了。。
13. 还了解什么排序算法吗?
A:嘿嘿,碰巧看过 Arrays.sort() 源码,回答了下传入的是 int[] 数组时的场景,较短(大概40多)时使用插入排序,较长(大概接近300)时使用归并排序,中间值使用双基线快排(算法4有相关讲解)

总结

大厂八股这块必须安排明白,面试不管实习校招主要问这些基础知识,一般面试官会顺着你的回答继续延伸,所以大家回答的时候慎说一些不太清楚的东西,基本等于给自己挖坑。。。
面试官相当好,会对回答反馈,整个过程相当流利,不过看上海 HC 就 10 个。。。呜呜呜 许愿二面吧
#百度##校招##面经##Java工程师#
全部评论
博主,大厂八股是那些哎
2 回复 分享
发布于 2021-03-02 14:49
老哥你在哪里投的简历呀
1 回复 分享
发布于 2021-03-03 00:49
百度暑假实习开始了?
1 回复 分享
发布于 2021-03-02 22:01
cas缺点 aba问题 cas可能一次不成功,一般用循环cas,会导致饥饿问题 cas只能操作一个变量
1 回复 分享
发布于 2021-03-02 20:37
9 凉了,红黑树只有变色,左旋和右旋是所有平衡二叉搜索树都要做的
1 回复 分享
发布于 2021-03-02 20:36
12 是索引只对查询好吧,你插入,删除会导致b+树页的合并和分离,额外开销大,如果一个表就有10多个索引,岂不是每次插入删除都要维护10多个索引
1 回复 分享
发布于 2021-03-02 20:34
老哥过了吗?感觉你答得相当好啊
点赞 回复 分享
发布于 2021-03-23 00:31
楼主什么部门啊
点赞 回复 分享
发布于 2021-03-19 01:43
八股文要求都这么高了
点赞 回复 分享
发布于 2021-03-03 00:10

相关推荐

03-12 20:34
门头沟学院 Java
###&nbsp;字节生活服务成都一面面经---####&nbsp;**一、项目相关**1.&nbsp;**第一个项目**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;**登录模块实现**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;短信登录流程如何设计?验证码如何存储(Redis哈希结构)?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Token与Cookie的区别?分布式场景下如何解决Session共享问题?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Token刷新机制如何优化用户体验?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;**秒杀场景设计**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;如何解决库存超卖问题?(乐观锁、分布式锁)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;分布式锁的实现原理(Redis&nbsp;Redisson的可重入、超时续约机制)?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;如何通过消息队列(RabbitMQ&nbsp;+&nbsp;Lua脚本)优化秒杀性能?&nbsp;&nbsp;2.&nbsp;**第二个项目**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;如何基于Redis发布订阅实现动态调整?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;如何采集线程池指标并上传监控中心?&nbsp;&nbsp;---####&nbsp;**二、技术问题**1.&nbsp;**Redis**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Redis数据结构及适用场景(String、Hash、ZSet等)?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;ZSet如何实现排行榜?Hash如何存储对象?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Redis分布式锁的底层实现(Redisson的Watch&nbsp;Dog机制)?&nbsp;&nbsp;2.&nbsp;**MySQL**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;索引类型(主键索引、联合索引、前缀索引)?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;B+树的结构特点?联合索引的最左匹配原则?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;事务ACID特性及隔离级别(读未提交、读已提交、可重复读、串行化)?&nbsp;&nbsp;3.&nbsp;**网络协议**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;HTTP请求报文组成(请求行、请求头、请求体)?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;`Content-Length`的作用及必要性?&nbsp;&nbsp;---####&nbsp;**三、编程题**1.&nbsp;**矩阵中的最大岛屿面积**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;**题目**:给定二进制矩阵,计算由相邻1组成的最大面积。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;**思路**:DFS/BFS遍历,标记已访问节点。&nbsp;&nbsp;2.&nbsp;**二叉树路径总和**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;**题目**:找出根节点到叶子节点路径和为给定值的所有路径。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;**思路**:递归遍历,维护路径和当前和,叶子节点时校验结果。&nbsp;&nbsp;---####&nbsp;**四、反问环节**1.&nbsp;部门业务方向?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;生活服务业务(类似美团,聚焦团购、酒旅等场景的用户体验优化)。&nbsp;&nbsp;2.&nbsp;对实习生的要求?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;基础技术能力、需求落地能力、学习能力。&nbsp;&nbsp;3.&nbsp;面试流程?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;技术面2-3轮&nbsp;+&nbsp;HR面。&nbsp;&nbsp;4.&nbsp;实习时间要求?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;一周5天,持续半年以上。&nbsp;&nbsp;---####&nbsp;**五、总结建议**-&nbsp;**项目**:需深入细节,如Redis数据结构选型、锁的优化逻辑。&nbsp;&nbsp;-&nbsp;**基础**:加强MySQL索引原理、HTTP协议细节、Redis底层机制。&nbsp;&nbsp;-&nbsp;**代码**:注意边界条件(如矩阵越界)、DFS/BFS模板熟练度。
查看16道真题和解析
点赞 评论 收藏
分享
评论
17
78
分享

创作者周榜

更多
牛客网
牛客企业服务