百度 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
12 是索引只对查询好吧,你插入,删除会导致b+树页的合并和分离,额外开销大,如果一个表就有10多个索引,岂不是每次插入删除都要维护10多个索引
1 回复
分享
发布于 2021-03-02 20:34
阅文集团
校招火热招聘中
官网直投
9 凉了,红黑树只有变色,左旋和右旋是所有平衡二叉搜索树都要做的
1 回复
分享
发布于 2021-03-02 20:36
cas缺点 aba问题 cas可能一次不成功,一般用循环cas,会导致饥饿问题 cas只能操作一个变量
1 回复
分享
发布于 2021-03-02 20:37
百度暑假实习开始了?
1 回复
分享
发布于 2021-03-02 22:01
老哥你在哪里投的简历呀
1 回复
分享
发布于 2021-03-03 00:49
八股文要求都这么高了
点赞 回复
分享
发布于 2021-03-03 00:10
楼主什么部门啊
点赞 回复
分享
发布于 2021-03-19 01:43
老哥过了吗?感觉你答得相当好啊
点赞 回复
分享
发布于 2021-03-23 00:31

相关推荐

17 78 评论
分享
牛客网
牛客企业服务